毫無疑問,這是不可能的,但我想看看是否有人有一個巧妙的建議。我們可以輸出的圖像內部存儲定製的數據庫內的第三方組件文件中使用的內部方法「的SaveToFile」,一個例子:截取文件流...不可能嗎?
3rdParty.Scripting.ImageManager man = new 3rdParty.Scripting.ImageManager("ref");
3rdParty.Scripting.Image itemImg = man.GetImage(orderNumber);
itemImg.SaveToFile("c:\file.jpg")
ItemImg.SaveToFile沒有返回類型,只是在內部創建一個位圖並將其寫入文件流。我們完全不能訪問編譯的方法。
我需要做的是以某種方式攔截文件流並閱讀位圖,我知道這可能是不可能的,但我不是絕對的專家,所以想看看是否有一種神奇的方式來做到這一點。
如果一切都失敗了,我會保存文件,然後讀回來,我只是想避免保存到磁盤,我可能直接獲取數據,並最終將其轉換爲base64字符串值。
使用MemoryStream。 – jdweng
'3rdParty.Scripting.Image itemImg = man.GetImage(orderNumber);' - 這是在內存中的圖像,不是嗎?當然,如果你有權訪問所有的像素數據,那麼你不能只從'itemImg'構造「base64字符串值」嗎? – Quantic
林與@Quantic對此。做一些調試,看看這個'Image'類型的私有成員是什麼。如果在託管內存中加載了某些內容,則可以使用反射從該類型的私有成員獲取該流。代碼雖然會非常脆弱,應該重新測試該庫所做的任何版本更改。 – Igor