Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#32

AW: nach StretchBlt schwarzer Hintergrund

  Alt 26. Feb 2015, 14:45
Gut regergiert, Sherlock!

eine interessante Funktion

Ich hab das mal für normale Bitmaps (testweise) umgestrickt:

Delphi-Quellcode:
procedure ResizeImage(Bitmap: TBitmap; NewWidth:Integer);
var
  WICImage : TWICImage;
  WICBitmap: IWICBitmap;
  scale : IWICBitmapScaler;
  newHeight: Integer;
  faktor : Double;

begin
  If not Assigned(Bitmap) then
    exit;

  WICImage := TWICImage.Create;

  WICImage.Assign(Bitmap);

  try
    faktor := NewWidth / WICImage.Width;
    newHeight := round(WICImage.Height * faktor);

    WICImage.ImagingFactory.CreateBitmapScaler(scale);

    scale.Initialize(WICImage.Handle, NewWidth, NewHeight, WICBitmapInterpolationModeFant);

    WICImage.ImagingFactory.CreateBitmapFromSourceRect(scale, 0,0,NewWidth, NewHeight, WICBitmap);

    If Assigned(WICBitmap) then
      WICImage.Handle := WICBitmap;

    Bitmap.Assign(WICImage);
  finally
// WICImage.Free;
  end;
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (26. Feb 2015 um 15:06 Uhr)
  Mit Zitat antworten Zitat