Gelöst: Transparenz JPG

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
COMMANDER86
Beiträge: 20
Registriert: Di 23. Feb 2010, 01:11
OS, Lazarus, FPC: Win XP, Vista Busi.; L 0.9.28.2; FPC 2.2.4
CPU-Target: 32Bit

Gelöst: Transparenz JPG

Beitrag von COMMANDER86 »

Hallo zusammen,

seid mir net bös, wenn das hier schon irgendwo steht... ich habe via Suche leider Nichts finden können. Vl. suche ich falsch... However:

Ich verwende diverse Grafiken in meinen Formularen, um diese ein bisschen bunter zu gestalten... Stichwort: Userfreundlichkeit. Das TImage kann ja sowohl BMP als auch JPG einladen und ich lade diverse Bildchen zur Laufzeit, um die Anwendung klein zu halten (FormCreate).

In beiden Fällen habe ich die Eigenschaft "Transparent" auf True gestellt, aber es greift nur bei BMP-Files. Dort wird die Transparenz angewandt. Bei JPG allerdings nicht. Da sehe ich den fetten weißen Hintergrund der Grafik. Habe ich eine Einstellung übersehen, oder ist das prinzipiell bei JPG nicht möglich?

Liebe Grüße
Fabian
Zuletzt geändert von COMMANDER86 am Di 23. Feb 2010, 15:40, insgesamt 1-mal geändert.
"Da programmierste ohne Fehler, alles funktioniert und dann benutzt irgendein User Vista."

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Transparenz JPG

Beitrag von DiBo33 »

oder ist das prinzipiell bei JPG nicht möglich?
Genau das.

COMMANDER86
Beiträge: 20
Registriert: Di 23. Feb 2010, 01:11
OS, Lazarus, FPC: Win XP, Vista Busi.; L 0.9.28.2; FPC 2.2.4
CPU-Target: 32Bit

Re: Transparenz JPG

Beitrag von COMMANDER86 »

DiBo33 hat geschrieben:
Genau das.
Okay, danke!

PS: Kann man hier ein Thema schließen oder als "Done" markieren? Finde das hier gerade nicht...

LG
Fabian
"Da programmierste ohne Fehler, alles funktioniert und dann benutzt irgendein User Vista."

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Transparenz JPG

Beitrag von DiBo33 »

COMMANDER86 hat geschrieben:PS: Kann man hier ein Thema schließen oder als "Done" markieren? Finde das hier gerade nicht...
Nein, einfach so lassen.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Transparenz JPG

Beitrag von mschnell »

COMMANDER86 hat geschrieben: Kann man hier ein Thema schließen oder als "Done" markieren? Finde das hier gerade nicht...
AFAIK: Du Kannst den "Betreff" Deines ersten Beitrags ändern und "Gelöst: " vorstellen oder etwas ähnliches.
-Michael

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Transparenz JPG

Beitrag von Hitman »

Manche Komponenten (wie die TImageList) erlauben allerdings, dass man eine beliebige Farbe als "Transparenz" definiert. Dann wird einfach alles außer dieser Farbe gezeichnet. Damit dürfte aber z.B. ein etwas ausgefeilteres Blending nicht gehen (schließlich kann man die Transparenz dann nur per ja/nein definieren).

COMMANDER86
Beiträge: 20
Registriert: Di 23. Feb 2010, 01:11
OS, Lazarus, FPC: Win XP, Vista Busi.; L 0.9.28.2; FPC 2.2.4
CPU-Target: 32Bit

Re: Transparenz JPG

Beitrag von COMMANDER86 »

Hitman hat geschrieben:Manche Komponenten (wie die TImageList) erlauben allerdings, dass man eine beliebige Farbe als "Transparenz" definiert. Dann wird einfach alles außer dieser Farbe gezeichnet. Damit dürfte aber z.B. ein etwas ausgefeilteres Blending nicht gehen (schließlich kann man die Transparenz dann nur per ja/nein definieren).
So ähnlich funktioniert das doch auch bei einem Bitmap im TImage, oder? Ich bearbeite die grundsätzlich so, dass der Hintergrund giftgrün ist. Die Farbe wird dann nicht angezeigt und der Effekt ist Transparenz. Afaik sind Bitmaps aber auch nicht die feinste Grafiklösung. Da das vorher Cliparts waren, die das TImage nicht öffnen kann, musste ich ohnehin konvertieren, welches Format spielt dabei keine Rolle. Bitmaps wollte ich nicht wegen der Dateigröße; ist aber nebensächlich. Trotzdem Danke für den Hinweis. Denke, ich werde mir das bei Zeiten mal anschauen.

LG
Fabian
"Da programmierste ohne Fehler, alles funktioniert und dann benutzt irgendein User Vista."

Lollo67
Beiträge: 69
Registriert: Mo 25. Jan 2010, 23:07

Re: Gelöst: Transparenz JPG

Beitrag von Lollo67 »

Hi Fabian!

Ich benutze komprimierte PNG Bilder... Mit z.B. Gimp die JPG/BMP Bilder umwandeln, dann hast du auch die Transparenz und geringe Speichergrösse! :wink:

Was anderes an die anderen... Wie kann man eine Grafik (Bild) aus dem laufenden Program am einfachsten ausdrucken?
Mit TPrint.Execute (Dialog) bekomme ich leider nichts gebacken... bei Delphi3 musste ich da nur einfach die Zeile Print; setzen... :roll:

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Gelöst: Transparenz JPG

Beitrag von KOBOLD Messring GmbH »

falls Du das meinst: Eine Grafik, die im Programm z.B. in einem TImage vorhanden ist, ausdrucken.
Drucken ist ganz einfach bei Freepascal/Lazarus:

Code: Alles auswählen

USES PrintersDlgs, Printers;
 
Procedure GrafikDrucken;
Begin
{ das ist der Drucker-Dialog, wo man den Drucker auswählt: }
 IF PrintDialog1.Execute 
   THEN Begin
          { das initialisiert den Druckertreiber (oder so was...): }
          Printer.BeginDoc; 
          { das kopiert die Graphik auf den Printer: }
          Printer.Canvas.Draw (10, 10, Image1.Picture.Graphic); 
          { auch skaliert möglich: }
          Printer.Canvas.StretchDraw (Rect (20,20,30,50), Image1.Picture.Graphic);
          { das schickt nun wirklich alles zum Drucker, egal ob lokal, Netzwerk, IPP... : }
          Printer.EndDoc;
        End; { If wirklich der Druckerdialog mit [OK] bestätigt }
End; { GrafikDrucken }
... das wars.

Lollo67
Beiträge: 69
Registriert: Mo 25. Jan 2010, 23:07

Re: Gelöst: Transparenz JPG

Beitrag von Lollo67 »

@Kobolt: Super, das hab ich gemeint... und es funktioniert! - Vielen Dank dafür!!! :D

Antworten