Entwickler-Ecke
Multimedia / Grafik - Transparentes Bitmap erzeugen
Boller - Di 31.07.07 09:27
Titel: Transparentes Bitmap erzeugen
Hallo,
ich male auf dem Image Canvas das von Haus aus weiß wie eine Leinwand ist *g*
nun weise ich das Image.picture.bitmap meinen eigenem bild vom Typ TBitmap zu.
Davor oder danach habe ich auch schon die Eigenschaften für Transparent versucht einzustellen, doch das Bitmap hat immer
die weiße Hintergrundfläche.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TfrmSign.FormClose(Sender: TObject; var Action: TCloseAction); var tbmp: TBitmap; begin tbmp:=TBitmap.Create; try tbmp.Assign(image1.Picture.bitmap); tbmp.TransparentColor:=clWhite; tbmp.Transparent:=true; Clipboard.Assign(tBMP); frmHTMADMS.SetSignToDocument('verordnersign'); finally tbmp.Free; end; end; |
Kann man sonst das bitmap in ein transparentes Gif Bildchen konvertieren....
oder hat auch jemand dafür ein Code snippet von der schönen graphic32 Bibliothek, die das ja auch realisieren soll.
danke Euch.
Moderiert von
Gausi: Delphi-Tags hinzugefügt
little-wolf - Fr 10.08.07 12:07
hallo
soviel ich weiss, gibt es keine transparenten bitmap-dateien. das ist meines wissens nach nur bei gif-dateien möglich.
versuch mal mit einem grafikprogramm wie gimp oder so das bild auszuschneiden (gimp oder auch andere grafikprogramme verfügen bereits über massenhaft funktionen um sauber alles was interessiert ausschneiden zu können) und danach füge das ausgeschnittene bild auf ein neues ein, welches eine transparente hintergrundfarbe hat (bei gimp z. b. kann man das beim erstellen eines neuen bildes gleich angeben).
evtl. gibt es ja wirklich auch komponenten, die weiss zu transparenz umwandeln können und das bild dann als gif abspeichern, wäre mir aber nicht bekannt...
gruss
little-wolf
Jakob_Ullmann - Fr 10.08.07 12:14
Nö, aber dem Image kannst du Transparent auf True setzen.
Boller - So 12.08.07 10:38
Titel: bitmap to transparentes Gif
also wenn es das geben würde in DElphi wäre perfekt.
bei animierten Gif files wird ja mit den sogenannte Alpha Kanal getrickst....
Andreas L. - So 12.08.07 12:31
Titel: Re: bitmap to transparentes Gif
Boller hat folgendes geschrieben: |
also wenn es das geben würde in DElphi wäre perfekt.
bei animierten Gif files wird ja mit den sogenannte Alpha Kanal getrickst.... |
Soweit ich weiß hat PNG einen Alpha-Kanal. Bei Gif lässt sich nur eine Farbe transparent schalten. Oder irre ich mich?
alias5000 - So 12.08.07 13:15
Titel: Re: bitmap to transparentes Gif
Andreas L. hat folgendes geschrieben: |
Soweit ich weiß hat PNG einen Alpha-Kanal. Bei Gif lässt sich nur eine Farbe transparent schalten. Oder irre ich mich? |
Gif hat einen 1-bit Alphakanal. Jedes Pixel kann damit als transparent oder nicht transparenz markiert werden.
Bei PNG sind glaub ich bis 8-bit drin. Es ist also für jedes Pixel ein gewisser Grad an Transparenz einstellbar.
Bei Bitmaps existieren noch die Masken (TBitmap.MaskHandle, TBitmap.Mask(), etc.), mit denen man i.d.R. dann eine Transparenz auf Toolbars etc. doch erreichen kann
Gruß
alias5000
Boller - Mi 15.08.07 20:30
hallo alias5000
wie kann man den nun, wenn überhaupt ein Bitmap transparent gestalten.
Ich male nur eine Linie bzw. es soll eine Unterschrift sein und der Canvas der von Haus aus weiß ist soll am Ende transparent sein.
1.) ich lasse auf dem Image.canvas eine Unterschrift malen
2.) man malt letzten endes ja auf einem weißen BLattpapier, so ist auch die BGColor des Canvas.
3.) versuche den weißen Canvas transparent hinzubekommen, aber wie?
4.) das fertige Bild mit der Unterschrift kommt in die Zwischenablage
5.) aus der Zwischenablage wird das Bild geholt und in MS Word in einem Dot. Dokument eingefügt.
result: Der weiße Canvas des Bildes überlagert andere textschriften des Dokumentes.
???
alias5000 - Do 16.08.07 03:29
Ja Moment, du kannst über ein Maskenbitmap Transparenz simulieren, wie das mit der Zwischenablage klappt, kann ich dir nicht sagen. Wenn du dir dein Bitmap auf ner Toolbar oder in nem Image im eigenen Programm darstellen willst, reicht ein
Bitmap1.Mask(Hintergrundfarbe); normalerweise.
Ansonsten sind vllcht auch andere Dateiformate mit Transparenz was für dich?
Gruß
alias5000
Boller - Sa 18.08.07 09:56
Titel: transpartente Bilder erzeugen egal wie!
alias5000
also wenn man bmp to gif assigned und danach jedes weiße Pixel transparent gestalten läßt wäre das supi.
Hättest du da ein Code Snippet für mich da?
Habe auch TPngImage gefunden ansonsten ist es doch plausibel das der Canvas meist weiß ist.
Nun möchte ich den weißen Farbteil einfach transpartent bekommen und dabei wäre das Dateiformat egal
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!