Я следовал этому ответу, чтобы обрезать изображение: Как мне обрезать растровое изображение «на месте»?
В Delphi 7 у меня есть TImage Image_center.
Image := TPngObject.Create;
try
Image.LoadFromStream(Stream);
Image_center.Picture.Graphic := Image;
Image_center.width := Image.width;
Image_center.height := Image.height;
Image_center.Left := ( form1.clientWidth div 2 ) - (Image_center.width div 2);
CropBitmap(Image_center.Picture.Bitmap, 1, 45, Image.width, Image.height-45);
finally
Image.Free;
end;
Но в результате TImage содержит белое растровое изображение.Если я пропущу / закомментирую функцию CropBitmap, я смогу увидеть изображение.Так что проблем с загрузкой нет.Почему вместо изображения отображается белая область?
procedure CropBitmap(InBitmap : TBitmap; X, Y, W, H :Integer);
begin
BitBlt(InBitmap.Canvas.Handle, 0, 0, W, H, InBitmap.Canvas.Handle, X, Y, SRCCOPY);
InBitmap.Width :=W;
InBitmap.Height:=H;
end;
Delphi 7 Растровые методы:
In TBitmap
~TBitmap
Assign
Create
Destroy
Dormant
FreeImage
HandleAllocated
LoadFromClipboardFormat
LoadFromResourceID
LoadFromResourceName
LoadFromStream
Mask
ReleaseHandle
ReleaseMaskHandle
ReleasePalette
SaveToClipboardFormat
SaveToStream
TBitmap
Derived from TGraphic
LoadFromFile
SaveToFile
Derived from TInterfacedPersistent
AfterConstruction
QueryInterface
Derived from TPersistent
GetNamePath
Derived from TObject
BeforeDestruction
ClassInfo
ClassName
ClassNameIs
ClassParent
ClassType
CleanupInstance
DefaultHandler
Dispatch
FieldAddress
Free
FreeInstance
GetInterface
GetInterfaceEntry
GetInterfaceTable
InheritsFrom
InitInstance
InstanceSize
MethodAddress
MethodName
NewInstance
SafeCallException