3
當我嘗試在TPNGImage對象上調用SaveToFile方法時,我得到了訪問衝突錯誤。在.png保存期間訪問衝突
PNG建設: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048);
方法調用:pngTest.SaveToFile('testtttt.png');
PNG對象正確創建,因爲我可以將其分配到的TImage和它的作品。
當我嘗試在TPNGImage對象上調用SaveToFile方法時,我得到了訪問衝突錯誤。在.png保存期間訪問衝突
PNG建設: pngTest:=TPngImage.CreateBlank(COLOR_GRAYSCALE, 16, 2048, 2048);
方法調用:pngTest.SaveToFile('testtttt.png');
PNG對象正確創建,因爲我可以將其分配到的TImage和它的作品。
這是Delphi PNG庫代碼中的一個缺陷。請報告給Embarcadero。
該缺陷似乎是由使用16位顏色深度觸發的。如果您將代碼切換爲使用8位顏色,則代碼將成功運行。
有沒有簡單的解決方法,所以如果你想繼續使用16位顏色,你需要找到一個不同的PNG庫。我希望微軟的Windows Imaging Component庫能夠正常運行。或者你可以考慮使用GR32PNG擴展的Graphics32。
有什麼「開箱」的方式來保存16位灰度圖像嗎? – meller92
它看起來不像,很遺憾 –
我可以簡單地將TPngImage分配給TWicImage嗎?當我嘗試這樣做時,我得到異常「不能分配...」 – meller92