回答
您可以使用這樣的事情(插入類在這裏用來訪問受保護的方法):
type
TJPEGImage = class(jpeg.TJPEGImage);
implementation
procedure TForm1.Button1Click(Sender: TObject);
var
JPEGImage: TJPEGImage;
begin
JPEGImage := TJPEGImage.Create;
try
// this should recreate the internal bitmap
JPEGImage.NewBitmap;
// this should recreate the internal image stream
JPEGImage.NewImage;
// here the memory used by the image should be released
finally
JPEGImage.Free;
end;
end;
如果你不想使用FreeAndNil和保持圖像空...
Procedure EmptyJPG(jpg:TJpegImage);
var
j:TJpegImage;
begin
j := TJpegImage.Create;
try
jpg.Assign(j);
finally
j.Free;
end;
end;
@Altar:我認爲你的意思是'在我的問題/原始問題'中,而不是'在OP中'。 OP(=原始海報)就是你。 –
這不是一個解決方案。它不會比釋放和重新創建原始JPEGImage更高效(實際上並不如此,因爲您現在無需任何理由創建一個新對象,除非將其丟棄)。雖然原來的問題沒有意義,但您提出的解決方案更不合理。 (不是downvoting,BTW;只是看不到這一點。) –
@KenWhite,完全同意,我會看到的唯一原因可能類似於: 開始 EmptyJPG(FMyMyReadOnlyPropertyJPEG); Showmessage('set before:'+ IntToStr(FMyMyReadOnlyPropertyJPEG.CompressionQuality)) end; – bummi
- 1. 如何清除圖像上的圖形
- 2. 如何縮小JPEG圖像以使文本儘可能清晰?
- 3. 如何清除此圖像推子?
- 4. 如何清除Facebook的圖像緩存
- 5. 如何清除拖影(幻影)圖像?
- 6. Winforms清除位圖圖像?
- 7. gae上的servlet刪除jpeg圖像
- 8. 如何用光標清除圖像以顯示其他圖像?
- 9. 如何從Java中的JPEG圖像中刪除元數據?
- 10. 如何保存圖像jpeg文件?
- 11. 如何將YUYV圖像壓縮成JPEG
- 12. 如何使用gzip_types圖像/ jpeg
- 13. 如何正確顯示base64 jpeg圖像?
- 14. 如何壓縮jpeg圖像與可可?
- 15. 如何將AVFrame寫入JPEG圖像
- 16. 如何將.Jpeg圖像轉換爲.Bmp
- 17. 在Imageview中清除圖像
- 18. 清除QML圖像緩存
- 19. 清除圖像緩存
- 20. 清除xsl圖像緩存
- 21. 強制IE清除圖像
- 22. 清空canvas圖像或清除android
- 23. 如何將jpeg圖像保存爲Progressive JPEG?
- 24. FFmpeg:avcodec_encode_video()和JPEG圖像
- 25. 入門JPEG圖像
- 26. Combobox與JPEG圖像
- 27. JPEG圖像壓縮
- 28. JPEG圖像像素質量
- 29. 轉換J2C(Jpeg 2000)圖像爲JPEG
- 30. 如何清除圖表tkinter
如果你不想釋放對象的背景T形部件,但你不想讓它佔用內存,那麼你想保留什麼? –
@Rob。它將在稍後重用。多次。無論如何,原因並不重要。我只是很好奇,如果圖像可以被清除而不消耗額外的資源(像bummi所建議的那樣創建新對象)。 – Ampere
如果您想刪除所有內容,我也無法看到您保留的內容。圖像已經剩下了什麼?那裏有什麼狀態? –