Вам придется вызывать обе функции:) Вообще, быстрее конечно StretchDIBits, но у функции есть баг и она не всегда корректно отрисовывает, поэтому я советую вам конструкцию вида:
with SrcRect, ImageData do
if Windows.StretchDIBits(DC, DstRect.Left, DstRect.Top,
DstRect.Right - DstRect.Left, DstRect.Bottom - DstRect.Top, Left,
Top, Right - Left, Bottom - Top, Bits, BitmapInfo, DIB_RGB_COLORS, SRCCOPY) <> Height then
begin
b := TBitmap.Create;
ConvertDataToBitmap(ImageData, b);
StretchBlt(DC, DstRect.Left, DstRect.Top, DstRect.Right - DstRect.Left,
DstRect.Bottom - DstRect.Top, b.Canvas.Handle, 0, 0, Width,
Height, SRCCOPY);
b.Free;
end; |