![]() |
TPicture in TImage verschieben (auch PNG, etc.)
Hey.
Ich hab ein TImage und will mein TPicture darin verschieben - dies soll auch mit PNG's (TLMDPNGImage) und JPegs (TJPEGImage) usw. klappen. Hat jemand eine Idee? PS: Es muss nicht umbedingt ein TImage sein; es soll eine Abgrenzung Breite = X Höhe = Y geben und in der soll man es verschieben können. Falls es so eine Frage schon gibt, sorry, ich habe nix gefunden was mir geholfen hat. Mfg, Destroxi |
AW: TPicture in TImage verschieben (auch PNG, etc.)
TPaintBox im OnDraw Canvas.Draw(X,Y,Graphic)
|
AW: TPicture in TImage verschieben (auch PNG, etc.)
Danke für die schnelle Antwort,
weißt du auch wie ich ein Canvas-Handle auf ein TImage bekomme, wenn ich ein (z.B.) TLMDPNGObject drin habe (oder auch TJPEGImage)? Mfg, Destroxi |
AW: TPicture in TImage verschieben (auch PNG, etc.)
TImage.Canvas.Handle, oder was meinst Du jetzt?
|
AW: TPicture in TImage verschieben (auch PNG, etc.)
|
AW: TPicture in TImage verschieben (auch PNG, etc.)
Ne, das ist was anderes ;)
Wenn ich das TImage.Canvas nehme, gehts nur bei Bitmaps.. Ich will aber wenn ich
Delphi-Quellcode:
mache, auch mit PNG's und JPG's ein Handle haben.
TImage.Picture.Assign(TLMDPNGObject);
PS: Ich brauche es nur für Canvas.Pixels! Und auch nur zur Abfrage, nicht zur beschreibung. Wie geht das ? ^^ Mfg, Destroxi |
AW: TPicture in TImage verschieben (auch PNG, etc.)
Versuch es mal mit TImage.Picture.Bitmap.Canvas.Handle.
|
AW: TPicture in TImage verschieben (auch PNG, etc.)
Das klappt doch aber nicht bei PNG's... :?:
Mfg, Destroxi |
AW: TPicture in TImage verschieben (auch PNG, etc.)
Code:
Schon mal was von TImage.Picture gehört? TImage.Picture.Bitmap, TImage.Picture.Jpeg usw.
Wenn ich das TImage.Canvas nehme, gehts nur bei Bitmaps..
Was ich jetzt schreiben ist nur meine Kenntnis, die kann auch falsch sein, also mit Vorsicht genießen. Man kann viele Formate laden und anzeigen lassen, aber eine Canvas hat nur die Bitmap. Wenn, dann muß zuerst in Bitmap konvertiert werden und dann wieder zurück. Das gilt meines Wissens nach nur für die Standard-Grafiken. Es steht jedem frei eine eigene PNG Klasse zu erstellen und dort eine Leinwand anbieten die und der auch den Namen Canvas geben. Aber soweit ich weiß hat das was Delphi selbst anbietet keine Canvas, bis auf Bitmap. |
AW: TPicture in TImage verschieben (auch PNG, etc.)
Um ganz sicher zu gehen, kannst Du temporär eine TBitmap erzeugen und mit Assign den Inhalt aus TImage.Picture.Graphic hineinkopieren. Das ist vielleicht nicht ganz das, was Du willst, aber so hast Du garantiert einen Canvas, mit dem Du arbeiten kannst.
|
AW: TPicture in TImage verschieben (auch PNG, etc.)
Ja, das kann ich machen, wird wohl auch sein Ziel bringen, ist nur halt nicht ganz so professionell^^
Aber erstmal werd ich diese Möglichkeit nehmen, Danke ;) Edit: Ich kriegs nich umgewandelt -.- Assign gibt Access Vioulation Fehler ...
Delphi-Quellcode:
Mfg, Destroxi
procedure JPEGtoBMP(const FileName: TFileName);
var jpeg: TJPEGImage; bmp: TBitmap; begin jpeg := TJPEGImage.Create; try jpeg.CompressionQuality := 100; {Default Value} jpeg.LoadFromFile(FileName); bmp := TBitmap.Create; try bmp.Assign(jpeg); bmp.SaveTofile(ChangeFileExt(FileName, '.bmp')); finally bmp.Free end; finally jpeg.Free end; end; |
AW: TPicture in TImage verschieben (auch PNG, etc.)
ich würde nicht auf ein TImage zeichnen, male lieber in z.B. einer Paintbox, bei PNG,ICO, etc sind sonst die Transparenzen weg.
Sinnfrei, aber zur Demo
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var jpg:TJpegImage; bmp:TBitmap; begin jpg:=TJpegImage.Create; jpg.LoadFromFile('C:\bilder1\20111213_120009.jpg'); Canvas.Draw(100,100,jpg); bmp := TBitmap.Create; try bmp.Width := jpg.Width div 10; bmp.height := jpg.Height div 10; bmp.Canvas.StretchDraw(Rect(0,0,bmp.Width,bmp.Height),jpg); Image1.picture.Bitmap.Assign(bmp); finally bmp.Free; end; try finally jpg.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 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