Autor Beitrag
Boller
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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.

ausblenden 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;
    //DrawTransparent(tbmp.Canvas.Handle,0,0,image1.picture.bitmap);
    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 user profile iconGausi: Delphi-Tags hinzugefügt
little-wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

WinXP
Delphi 5 Enterprise, Delphi 2006 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Fr 10.08.07 12:14 
Nö, aber dem Image kannst du Transparent auf True setzen.
Boller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: So 12.08.07 12:31 
Titel: Re: bitmap to transparentes Gif
user profile iconBoller 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
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)
BeitragVerfasst: So 12.08.07 13:15 
Titel: Re: bitmap to transparentes Gif
user profile iconAndreas 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
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)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: 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