![]() |
WICImage
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich bin immer noch an meinem Programm am Basteln. Ich will auch Heif-Bilder anzeigen können.
Im Testprogramm klappt das aber nicht in der Ausführung im größeren Projekt. Für Heif benutze ich:
Delphi-Quellcode:
Für alle anderen Formate:
if IsHeif(fn) then begin
WICImg:=TWICImage.Create; WICImg.LoadFromFile(fn); Img.Center:=true; Img.Proportional:=true; Img.Picture.Graphic:=WICImg; WICImg.Free; end;
Delphi-Quellcode:
Das läuft für beide Konstrukte. Aber wenn ich Methode für Heic durchlaufen habe und dann wieder ein Jpeg-Bild anzeigen will, crasht es in der Zeile GPDrawImage... . Siehe Screenshot! Es handelt sich um das gleiche TImage.
GPImage := TGPImage.Create(fn);
GPGraphics:=TGPGraphics.Create(img.Canvas.Handle); GPGraphics.DrawImage(GPImage, (img.Width - W) shr 1, (img.Height - H) shr 1, W, H); Was ist da los. Willie. |
AW: WICImage
Bitte minimales Beispiel-Projekt mit Beispiel-Bild erzeugen, zippen und anhängen.
|
AW: WICImage
Guck mal bitte hier:
![]() Hilft das bei Dir analog in etwa der Form:
Delphi-Quellcode:
Wobei: Was ich jetzt nicht so genau weiß:
if IsHeif(fn) then begin
WICImg := TWICImage.Create; WICImg.LoadFromFile(fn); Img.Center:=true; Img.Proportional:=true; Img.Picture.Graphic.Assign(Nil); Img.Picture.Graphic.Assign(WICImg); WICImg.Free; end;
Delphi-Quellcode:
Img.Picture.Graphic := WICImg;
Jetzt zeigt doch Img.Picture.Graphic auf WICImg. Und wohin zeigt es nach dem
Delphi-Quellcode:
?
WICImg.Free;
Oder wird bei der Zuweisung mit := eine Kopie von WICImg erstellt? Wohl eher nicht. |
AW: WICImage
Hallo,
ich schicke euch mein Testprogramm, das Bilder in einem TImage öffnet. Das funktioniert bei Jpeg, Tif, Bmp und Heif. In meinem großen Projekt benutze ich bei Jpeg's GDI+, um das Bild mit RotateFlip drehen zu können. Das geht auch aber wenn ich ein Heif-Bild wie oben geöffnet habe, crasht es anschließend. Dabei wird das gleiche Image benutzt.
Delphi-Quellcode:
Der Rest ist einfach. Button, OpenPictureDialog und Image, das ist es!
procedure ShowHeif(Img: TImage; const fn: TFilename);
var WICImg: TWICImage; begin WICImg:=TWICImage.Create; WICImg.LoadFromFile(fn); Img.Center:=true; Img.Proportional:=true; Img.Picture.Graphic:=WICImg; WICImg.Free; end; Willie. Nachtrag: es sieht so aus, als wenn durch WICImage an TImage etwas verändert wird, so dass danach die Anzeige über GDI+ nicht mehr funktioniert. |
AW: WICImage
Zitat:
Fertiges Beispielprojekt mit den Bildern dazu, zippen und hochladen. Sonst keine Hilfe. Warum? Wieso? Weshalb? ![]() ![]() |
AW: WICImage
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
siehe Anhang! Willie. |
AW: WICImage
Ich wollte noch eine von Ballast befreite Datei hochladen, geht aber nicht! Obwohl sie innerhalb der Grenze 5 MB liegt. W.
|
AW: WICImage
hallo,
bei mir funktioniert es so
Delphi-Quellcode:
procedure ClearImage(im: TImage);
var Rec: TRect; begin im.Picture:=nil;// <----- Im.Canvas.Brush.Color:=clBtnFace; Rec:=Rect(0, 0, Im.Width, Im.Height); Im.Canvas.FillRect(Rec); end;
Delphi-Quellcode:
vielleicht lieber so
try
GPGraphics:=TGPGraphics.Create(img.Canvas.Handle); GPGraphics.DrawImage(GPImage, (img.Width - W) shr 1, (img.Height - H) shr 1, W, H)
Delphi-Quellcode:
GPGraphics:=TGPGraphics.Create(img.Canvas.Handle);
try GPGraphics.DrawImage(GPImage, (img.Width - W) shr 1, (img.Height - H) shr 1, W, H) Gruß |
AW: WICImage
So umsetzen wie mmw schrieb, dann geht das.
|
AW: WICImage
Zitat:
![]() bzw. ![]() Zitat:
aber
Delphi-Quellcode:
im.Picture.Graphic := nil;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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