hallo,
folgender Befehl rendert ein JPG zu BMP:
Delphi-Quellcode:
Bitmap := TBitmap.Create;
try
Bitmap.Width := ThumbnailSize;
Bitmap.Height := ThumbnailSize;
Bitmap.Canvas.Brush.Color := clWhite;
Bitmap.Canvas.FillRect(Bitmap.Canvas.ClipRect);
Dummy := nil;
ImageX.Render.Image(Bitmap.Canvas.Handle, Dummy,
0, 0, ImageX.Image.Width, ImageX.Image.Height,
OffsetX, OffsetY, ImageX.Image.Width, ImageX.Image.Height,
ixroSrcCopy, False);
Bitmap.SaveToFile('c:\temp\test\' + TListItemData(FListView.Items[I].Data).FFileName);
// Clean-up ImgX control
ImageX.Images.Clear('');
ImageX.ConserveMemory;
.....
Das Ganze läuft in einem Thread! Jetzt tritt sporadisch der Fehler auf, dass das Bitmap entweder komplett weiß oder schwarz ist. Dieser Code läuft außerhalb von THreads fehlerfrei.
Es scheint etwas mit dem
Handle zum Canvas des Bitmaps zu tun haben.
Ich weiß, dass ImageX non-standard ist, aber vielleicht weiß doch jemand Rat.
Vielen Dank!