Delphi 如何清除jpeg图像?

Delphi 如何清除jpeg图像?,delphi,Delphi,如何清除TJPEG图像 JPG.Width:=0技巧无效。 另外,我不想创建一个空位图(0x0像素)并将其分配给jpeg。如果您不想使用FreeAndNil并将图像保持为空 Procedure EmptyJPG(jpg:TJpegImage); var j:TJpegImage; begin j := TJpegImage.Create; try jpg.Assign(j); finally j.Free; end; end; 您可以使用类似的方法(此处使用插

如何清除TJPEG图像

JPG.Width:=0
技巧无效。
另外,我不想创建一个空位图(0x0像素)并将其分配给jpeg。

如果您不想使用FreeAndNil并将图像保持为空

Procedure EmptyJPG(jpg:TJpegImage);
var
 j:TJpegImage;
begin
  j := TJpegImage.Create;
  try
    jpg.Assign(j);
  finally
    j.Free;
  end;
end;

您可以使用类似的方法(此处使用插入类来访问受保护的方法):


将T形状组件放置在TImage组件的背景上

Image1 : Timage
.
.
Image1.Picture.Graphic.Assign(nil);

如果你不想释放对象,但又不想让它再占用内存,那么你想保留什么?@Rob。它将在以后重新使用。多次。不管怎么说,原因没那么重要。我只是好奇是否可以在不消耗额外资源的情况下清除图像(按照bummi的建议创建新对象)。如果要删除所有内容,我也看不到您保留了什么。图像消失后还剩下什么?有什么状态?假设您可以“清除”图像。你能举个例子说明你以后会怎么处理这个物体吗?知道你到达某个地方后打算做什么可以帮助我们找到正确的路线。我刚刚发现TImage.Picture.LoadFromFile(“”)将清除图像。太酷了。@table:我想你的意思是“在我的问题中/在原来的问题中”,而不是“在作品中”。海报原件就是你。这不是一个解决方案。它的效率并不比释放和重新创建原始JPEG图像更高(实际上效率更低,因为您现在创建了一个新对象,除了扔掉它之外没有其他原因)。虽然最初的问题毫无意义,但您提出的解决方案更有意义。(顺便说一句,不是反对票;只是不明白重点。)@KenWhite,完全同意,我看到的唯一原因可能是:beginemptyjpg(FMyMyReadOnlyPropertyJPEG);Showmessage('set before:'+IntToStr(FMyMyReadOnlyPropertyJPEG.CompressionQuality))结束;这与我的问题有什么关系?
Image1 : Timage
.
.
Image1.Picture.Graphic.Assign(nil);