![]() |
Inhalt von timage32 mit Layer speichern
Hallo !
Ich baue gerade ein Bildbearbeitungsprogramm, nutze dazu graphics32. Habe eigentlich alles, was ich einbauen wollte drin (drehen,skalieren,layers..) Wenn ich aber das Ergebnis via. savetofile speichere, fehlen die Layer ! Habe dies : procedure ExecDrawLayers(Dest: TBitmap32; Stage: Integer); virtual; auch schon versucht, funzt nicht :wall: MFG ! |
Re: Inhalt von timage32 mit Layer speichern
Ich nehme an, dass die Layer auch als solche separat bleiben sollen, und nicht mit dem Hintergrund final vereinigt werden. Dann gibt es 2 Varianten.
1) Du speicherst als normales Windows-Bitmap: Das .bmp Format kann keine Layer speichern - es ist in der Spezifikation niemals vorgesehen worden. Einzige Chance: Jeden Layer separat als eigenes Bitmap speichern, und zusätzlich ein weiteres Bitmap für den jeweiligen Alphakanal. Um alle Layer und Kanäle zusammenzuhalten, böte sich ein eigenes Dateiformat an, in dem hinterlegt ist welche Dateien zusammen gehören. 2) Du implementierst Routinen zum speichern in Bildformaten, die diese Möglichkeit von sich aus bieten: Als da wären: TGA, Photoshop, TIFF (glaube ich) und evtl. noch ein paar weitere. Es gibt hier und da Libraries die das können, und wenn man selbst dran will wäre ![]() Naja, ein dritter Weg wäre es, ein komlpett eigenständiges Format zu entwickeln, dass das kann. Jedoch ist das wohl die schlechteste aller Lösungen, da keine andere Software diese lesen können wird. Da lohnt es sich denke ich mehr, ein wenig Arbeit in die Implementierung diverser (Quasi-)Standards wie in Punkt 2 genannt zu stecken. |
Re: Inhalt von timage32 mit Layer speichern
Hallo !
@dizzi: THX, für deine Lösungen, habe deinen 1. Vorschlag benutzt, mit Drawto werden die Layer draufgemalt, und als BMP abgespeichert. Zitat:
ExecDrawLayers ist wohl der falsche Weg, scheint für den direkten Aufruf nicht vorgesehen. Ich will nicht z.b den Photoshop nachproggen, es soll eine JPEG Bilddatei einlesen, evtl. skalieren wenn nötig, oder drehen, und ein Wasserzeichen oä. plazieren. Das Ganze soll als dann wieder als Jpeg gespeichert werden, was im Moment nicht richtig funzt, als bmp ist alles i.O. Habe aber die Lösung mit Suchen :mrgreen: gefunden. Zwar noch nicht getestet, denke aber schon das es so funzt. MFG ! BTW: graphics32 ist geiles plugin :-D , nur die Hilfedatei ist nicht die Beste ! |
Re: Inhalt von timage32 mit Layer speichern
Zitat:
Zitat:
Zitat:
lg, dizzy |
Re: Inhalt von timage32 mit Layer speichern
Hi !
Zitat:
Nun das Wasserzeichen - es soll vom Anwender in beliebiger Position auf Hintergrund plaziert werden können. Habe es so gelöst: Wenn das Wasserzeichen als neuer Layer, zu sehen ist, kann man mit der Maus draufkicken, und es nach Wunsch verschieben. Funzt auch wenn ich Zoome :-D (scale<>1), dann ist etwas Rechnerei in der onmousemove nötig. Zitat:
Also - THX für deine Hilfe :-D MFG Rudi ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz