Jede Menge CxImage



  • Hallo

    Kennt jemand von euch die CxImage-Bibliothek ?

    Ich hab die in meinem Programm verwendet und das funktioniert auch alles super. Allerdings speichere ich nach jeder Aktion das Bild als JPG ab, wodurch sich nach einige Operationen eine scheiss Qualität ergibt. Nun könnte ich das Bild natürlich im CxImage Objekt lassen und erst am Ende abspeichern, dazu 2 Fragen:

    In meinem Programm werden zwischen 30 und 500 Bilder praktisch "gleichzeitig" verarbeitet, also die sollen zumindest durch hin und herschalten verfügbar sein. Wenn man zum nächsten umschaltet sollen die Änderungen am alten wirksam werden ohne das Bild abzuspeichern. Ich brauch also eine Möglichkeit bis zu 500 CxImage Objekte auf einmal zu verwalten. Hat dazu jemand eine Idee ?

    Ach ja noch was, weiß jemand ob CxImage.Resample(...) sofort unmittelbar wirkt oder erst beim speichern. Weil reinkommen ins Programm tun teilweise 8MP Fotos von einer digitalen Spiegelreflex und rausgehen tun 500*x große Fotos. Und 500*8MP im Arbeitsspeicher wäre doch etwas viel..

    Hoffentlich hat das noch wer kapiert.
    Danke jedenfalls schon mal im Voraus. 🙂



  • Kannst du die Klasse serialisieren?



  • Hm keine Ahnung, könnte man evt. probieren, stell ich mir allerdings doch recht aufwendig vor. Ich hab schon an so was wie verkettete Listen oder so was in die Richtung gedacht, oder mit Hilfe von CObArrays...

    Aber Serialisieren werd ich mal versuchen, vielleicht hauts ja hin. THX.



  • Hi,
    ich habe auch schon mit der Klasse gearbeitet.

    Ich habe es damals so gemacht das ich mir einen Temp Ordner angelegt habe und dort die Bilder bearbeitet habe.

    Und wenn ich dann endgültig schreiben wollte, wurden die Bilder halt an die Stelle geschrieben wo sie hin sollen.

    War für mich damals der Beste weg, da ich auch von ner Digicam gelesen habe und auch nicht alles in Speicher packen wollte.

    Und der Temp Ordner tat mir nicht sonderlich weh...

    Gruss
    chris



  • Ja ich habs jetzt auch über einen Temp-Ordner.
    Das Problem ist nur wenn ich ein Bild bearbeitet hab und ich wechsle zum nächsten, dann muss ich das alte Bild mit den Änderungen abspeichern. Wenn man dann wieder zum alten zurück geht, was ändert, und dann wieder zu einem anderen wechselt, wirds wieder gespeichert. Und das Ganze immer im JPG-Format, wodurch die Qualität nach ein paar Mal Speichern ganz schön leiden kann, auch bie JPG-Qualität = 100. Man könnte die Bilder natürlich in einem "verlustfreiem" Format abspeichern während des Bearbeitens, was jedoch den Temp-Ordner ordentlich anwachsen lässt.

    Noch eine Idee wäre es zum Bearbeiten immer das Originalbild zu laden und die Optionen nicht direkt auf das Bild anzuwenden sondern irgendwo (zB. Array) abzuspeichern. Da steht dann zB: drinnen Bild[23] = "links drehen;Kontrast=50" usw...oder evt. über zweidimensionale Arrays. Problem an der Lösung ist, dass das Originalbild immer wieder verkleinert werden muss für die Anzeige und das kann bei >= 8MP Fotos auf einem etwas langsameren Rechner shcon mal etwas dauern.

    Ich glaub ich versuch jetzt doch mal die Serialisierung. 🙂



  • Öhm. Also wenn diese Klasse das verlustfreie Bild beinhaltet, dann wird eine Serialisierung von der Größe ungefähr gleich der Speicherung der Daten als verlustfreies Bild sein. Wird sich nicht viel nehmen, denke ich. Irgendwo müssen die Daten ja hin.



  • Würde auch vurschlagen, in einem verlustfreien Format abzuspeichern. Bildbearbeitung aufeiner 40MB-Platte ist halt nicht...


Anmelden zum Antworten