Autor |
Beitrag |
Boller
      
Beiträge: 19
|
Verfasst: Di 31.07.07 09:27
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
      
Beiträge: 47
WinXP
Delphi 5 Enterprise, Delphi 2006 Enterprise
|
Verfasst: 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
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Fr 10.08.07 12:14
Nö, aber dem Image kannst du Transparent auf True setzen.
|
|
Boller 
      
Beiträge: 19
|
Verfasst: 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.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: 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
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: 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
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Boller 
      
Beiträge: 19
|
Verfasst: 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
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: 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
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Boller 
      
Beiträge: 19
|
Verfasst: 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
|
|