Einzelnen Beitrag anzeigen

shibumi

Registriert seit: 23. Mai 2006
1 Beiträge
 
#6

Re: Image-Resize und abspeichern mit Qualität

  Alt 23. Mai 2006, 11:54
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
  Mit Zitat antworten Zitat