so ich hänge mich mal hier ran, da mein Problem weiterführend ist.
Wenn ich das Bild abspeichere mit
image32.bitmap.savetofile('c:\test2.bmp');
Wird nicht das interpolierte Bild gespeichert, sondern das original, welches mir ja nix nutzt.
Also habe ich als workaround das vorgeschlagene BitBlt genutzt.
Delphi-Quellcode:
function TImageFrame.SetResolution(iResX : integer; iResY : integer) : Boolean;
var my1bmp :Tbitmap;
begin
try
my1bmp := TBitmap.create;
image32.Bitmap.LoadFromFile(EmpfangsTelegramm.sDateiname);
image32.width := iResX;
image32.Height := iResY;
image32.ScaleMode := smResize ;
image32.Resize;
//image32.bitmap.savetofile('c:\test2.bmp'); // Funzt net da Bild aus dem Speicher und nicht aus der Komponente entnommen wird.
BitBlt(image32.Bitmap.Handle,0,0,image32.width,Image32.height,my1bmp.Handle,0,0,srcCopy);
my1bmp.SaveToFile('C:\test_bmp.bmp');
finally
my1bmp.free;
end;
end;
Aber das gespeicherte Bild ('test_bmp.bmp') enthält keinen Header, sodass das IrfanView es nicht öffnen kann.
Möchte aber nach Möglichkeit die Datei nicht öffnen mich durchparsen und den Header "manuell" einfügen
Hat jemand ne Lösung oder nen Denkanstoss.
danke