amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

[Login] [Registrieren] [Passwort vergessen?]

< Nächste MeldungVorige Meldung >
01.Jul.1999
Czech Amiga News


ImageManager.library - Vorschlag von Allan Odgaard
Am 30. Juni 1999 hat Allan Odgaard(IProbe, MCC_BetterString) mit der "ImageManager-Library" einen Vorschlag für ein OOP-System zur Dekodierung und Anzeige von Grafiken vorgestellt.

Allan Odgaard entwickelt derzeit mit IProbe einen WWW-Browser. Als er damit begann ging er davon aus, daß er sich nicht um die Dekodierung, das Dithering und die Anzeige von Grafiken kümmern bräuchte, da dafür die entsprechenden Datatypes existieren. Diese besitzen aber leider einige Einschränkungen. So lassen sich hiermit nur Grafiken anzeigen, die als Datei vorliegen. So müssen die Bilder zunächst vollständig übers Netz geladen, dann als Datei abgespeichert und erst dann können sie angezeigt werden. Eine progressive(inkrementelle) Anzeige wie von Web-Browsern gewohnt ist damit nicht möglich. So mußte er hierfür seine eigenen Routinen schreiben. Dieses System möchte er nun veröffentlichen. Dabei möchte er sicherstellen, daß das Design fehlerfrei ist und bittet um Reaktionen auf seinen Vorschlag.

Das System besteht aus der ImageManager-Library und zahlreichen BOOPSI-Klassen. Dies erlaubt es, anderen, weitere Klassen hinzuzufügen oder speziellere Unterklassen zu entwickeln. Die Objekte dieser einzelnen Klassen lassen sich miteinander verbinden. Sie bilden dadurch eine Kette, die Schritt für Schritt eine Bildquelle(z.B. Datei) dekodiert und sie bis zum Ziel(Rastport) zur Anzeige weiterleitet.

Buffer -> Base64Decoder -> ImageDecoder -> Scaler -> Dither -> BitMap -> RastPort

Jedes Objekt erhält damit die Daten in einen bestimmten Format und kann diese in einen anderen ans nächste Objekt weitergeben.

Als Ausgangsklassen gibt es u.a. die File.class für Dateien, die Buffer.class für Daten aus dem Speicher, die Socket.class für Daten aus dem Netz oder die Pipe.class für Daten aus einer Pipe oder einfach nur ein Objekt, daß ein Testbild zur Verfügung stellt.

Um das System zu vereinfachen gibt es die Container-Klasse, die die benötigte Kette zusammenstellt.

Mittels der Progress-Klasse, die einen Hook aufruft wenn Daten durch sich hindurchwandern, läßt sich der Ablauf der Daten verfolgen, ohne daß man selbst eine Unterklasse erstellen muß.

Dieses flexible System erlaubt die mühelose, progressive Dekodierung und Darstellung von Bildern aus verschiedenen Quellen, in verschiedenen Formaten.

Bleibt die Frage, ob die Daten durch die Kette gezogen(Pull) oder geschoben(Push) werden sollen. Beim Pull würde das letzte Objekt der Kette solange nach Daten fragen bis das Bild komplett angezeigt ist und jedes Objekt der Kette diese Anfrage an das vorhergehende Objekt weiterleiten.

Für Dateien oder Buffer ist dieses Modell ideal, da die Daten schon komplett vorliegen und immer nur dann angefordert werden, wenn das letzte Objekt weitere benötigt.

Beim Pull würde das erste Objekt die Daten in die Kette schicken und jedes Objekt diese ans nachfolgende weiterleiten.

Dieses Modell ist besser für aus Netzen stammenden Daten geeignet, da diese schubweise aus dem Netz kommen.

Wer Ideen und Vorschläge für dieses System hat oder es einfach nur gut findet kann eine E-Mail an Allan Odgaard(Duff@DIKU.DK) mit "ImageManager.library" im Betreff schicken.

Hersteller

Allan Odgaard
Dagmarsgade 36
2200 Copenhagen
Denmark
E-Mail: Duff@DIKU.DK
WWW: http://www.diku.dk/students/duff/

Quelle
(sd)

[Meldung: 01. Jul. 1999, 08:00] [Kommentare: 0]
[Per E-Mail versenden]  [Druck-Version]  [ASCII-Version]
< Nächste MeldungVorige Meldung >

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.