0
A
回答
0
由於你不是很具體的問題,我只是假設你有你的圖像加載爲BufferedImage
。所以這裏有一個關於如何去做的建議:
使用JNA Library可以更好地訪問c#的資源。
,然後也許做一些與此類似:
BufferedImage someImage;
long somePointer;
DataBuffer data = someImage.getData().getDataBuffer();
int[] bankOffsets = data.getOffsets();
long offset = 0;
com.sun.jna.Pointer ptr = new com.sun.jna.Pointer(somePointer);
switch(data.getDataType()) {
case DataBuffer.TYPE_BYTE:
byte[][] bbanks = ((DataBufferByte) data).getBankData();
for (int i = 0; i < bbanks.length; i++, offset += bbanks[i].length - bankOffsets[i])
ptr.write(offset, bbanks[i], bankOffsets[i], bbanks[i].length - bankOffsets[i]);
break;
case DataBuffer.TYPE_DOUBLE:
double[][] dbanks = ((DataBufferDouble) data).getBankData();
for (int i = 0; i < dbanks.length; i++, offset += (dbanks[i].length - bankOffsets[i])*8)
ptr.write(offset, dbanks[i], bankOffsets[i], dbanks[i].length - bankOffsets[i]);
break;
case DataBuffer.TYPE_FLOAT:
float[][] fbanks = ((DataBufferFloat) data).getBankData();
for (int i = 0; i < fbanks.length; i++, offset += (fbanks[i].length - bankOffsets[i])*4)
ptr.write(offset, fbanks[i], bankOffsets[i], fbanks[i].length - bankOffsets[i]);
break;
case DataBuffer.TYPE_INT:
int[][] ibanks = ((DataBufferInt) data).getBankData();
for (int i = 0; i < ibanks.length; i++, offset += (ibanks[i].length - bankOffsets[i])*4)
ptr.write(offset, ibanks[i], bankOffsets[i], ibanks[i].length - bankOffsets[i]);
break;
case DataBuffer.TYPE_SHORT:
short[][] sbanks = ((DataBufferShort) data).getBankData();
for (int i = 0; i < sbanks.length; i++, offset += (sbanks[i].length - bankOffsets[i])*2)
ptr.write(offset, sbanks[i], bankOffsets[i], sbanks[i].length - bankOffsets[i]);
break;
case DataBuffer.TYPE_USHORT:
short[][] usbanks = ((DataBufferUShort) data).getBankData();
for (int i = 0; i < usbanks.length; i++, offset += (usbanks[i].length - bankOffsets[i])*2)
ptr.write(offset, usbanks[i], bankOffsets[i], usbanks[i].length - bankOffsets[i]);
break;
case DataBuffer.TYPE_UNDEFINED:
throw new IllegalArgumentException("Unsupported data type");
}
寫應該是所有的像素顏色值數據。格式取決於圖像類型(可以用getType()
方法的類BufferedImage
獲得。
另外,您也可以使用Java本地接口,但我沒有看過成。
相關問題
- 1. 訪問地圖和從Java中
- 2. 如何從本地網絡訪問WAMP
- 3. 如何從android訪問本地主機?
- 4. Java EE:如何從Web模塊訪問本地EJB?
- 5. Java隨機訪問地圖
- 6. 如何訪問地圖?
- 7. 如何從訪問的Java
- 8. 從PuTTY訪問本地emacs
- 9. 從本地訪問Rect類
- 10. unity3d訪問android jar
- 11. 訪問Facebook的職位等與圖形API c#unity3d
- 12. 從本地服務訪問谷歌地圖圖像
- 13. 從EPUB訪問Google地圖
- 14. Unity3d從線程訪問GameObject:InternalGetGameObject錯誤
- 15. Unity3d本地轉發
- 16. Unity3d C#試圖訪問腳本中的數組,但在無效
- 17. 從Liquibase Java API訪問佔位符
- 18. 對本地變量名的Java訪問
- 19. 內訪問的本地變量 - Java的
- 20. 如何從本地副本訪問DOJO文件?
- 21. Unity3d:通過GetComponent錯誤從另一個腳本訪問類
- 22. 如何訪問地圖的第i位成員?
- 23. 訪問地圖
- 24. 如何從非管理員用戶訪問管理員本地數據位置?
- 25. Java訪問列表,這是在地圖
- 26. 在scriptlet中訪問Java地圖
- 27. 遠程調用java方法 - 如何訪問本地變量
- 28. 如何從主視圖訪問地圖片段
- 29. 如何從PhoneGap的外部存儲訪問地圖圖塊?
- 30. unity3d - 如何從c#腳本創建地形