我正在使用Android 4.0冰淇淋三明治在我的Samsung Galaxy Tab上進行項目工作。 通過SL4A使用python我想獲得給定座標(x,y)的jpeg(或png)圖像的像素RGB值。使用Python獲取jpeg的像素值(SL4A android 4.0)
2
A
回答
1
Android腳本外觀不包括任何可以做到這一點的東西。而且,據我所知,沒有人向SL4A做過端口PIL,imageio或任何其他流行的圖像庫。
但是,Kivy的Python for Android分配自帶PIL。如果你可以使用,那很好。如果沒有,也許你可以看看他們如何獲得_imaging.so
來構建,併爲S4LA構建它。
如果任這些作品對你的,這是很容易:
jpg = PIL.Image.open('foo.jpg')
pixels = jpg.load()
r, g, b = pixels[x, y]
另外,還有純Python庫JPEG那裏,如TonyJpegDecoder或NanoJPEG屈指可數。嘗試搜索PyPI,ActiveState和Google以獲取更多信息。 (您可能想要搜索與Google App Engine相關的內容,因爲GAE對Android有類似的限制。)
這些都不像PIL,用於libjpeg的Python綁定一樣完整,功能全面或簡單,等等。,他們可能會很慢。 (從NanoJPEG的文檔:「它需要12秒來解壓我的core2duo機器上的一個400x400像素的圖像,相比之下,原來的C代碼的0.2秒」...)
但你應該能夠做你所需要的。例如(未經測試):
with open('foo.jpg', 'rb') as f:
jpegdata = f.read()
decoder = TonyJpegDecoder.TonyJpegDecoder()
bmp = decoder.DecompressImage(jpegdata)
bmpstr = ''.join(map(cur(bmp)))
bmprgb = bgr2rgb(bmpstr)
pos = y * decoder.Width + x
rgb = map(ord, bmprgb[pos*3:(pos+1)*3])
需要注意的是,聲稱許多圖書館是「純Python」僅僅意味着他們正在通過包裹C庫,而不是使用的擴展模塊,這將沒有直接的幫助在這種情況下 - 但它可能比PIL更容易移植像libjpeg或FreeImage之類的東西。 (事實上,它可能只是「做一個普通的配方問題,運行構建腳本,推,如果你是幸運的。)
作爲一個真正瘋狂的可能性,PySide被移植PIL之前長期的Android ,所以你總是可以使用Qt爲你做圖像處理,但說實話,它必須更容易移植PIL或imageio或至少libjpeg。
相關問題
- 1. python android webview sl4a
- 2. python sl4a unicode(Android)
- 3. 獲取Android像素值
- 4. 使用Mini Jpeg Decoder處理JPEG圖像像素每像素
- 5. jpeg和tiff像素值提取
- 6. 使用python獲取圖像的大小(NEF和jpeg)
- 7. 在SL4a中使用Python讀取GPS值不起作用
- 8. 用像素獲取css值
- 9. 使用SL4A(Python)和藍牙
- 10. 安裝SL4A Python for Android
- 11. 從Android Canvas獲取像素值
- 12. 從Android顯示屏獲取像素值?
- 13. 如何在Android中使用Python獲取當前軌道信息(SL4A)
- 14. 使用SL4A
- 15. Python - 獲取圖像的白色像素
- 16. 使用Android中的按鈕獲取圖像的像素顏色?
- 17. 使用MagiC++獲取像素
- 18. Android位圖獲取像素
- 19. MATLAB獲取xyrgb像素值
- 20. 獲取圖像中的像素值
- 21. 使用PIL(Python)在jpeg圖像中查找給定的RGB值?
- 22. 使用Java獲取TIFF圖像的像素值
- 23. 使用Gdiplus獲取圖像的像素值
- 24. 在Android中獲取位圖圖像的像素值
- 25. 對於GIF和JPEG,Python和PIL像素值不同
- 26. JPEG圖像像素質量
- 27. 用Python與minidom獲取元素值
- 28. 使用蒙版獲取圖像像素
- 29. 使用graphicsmagick獲取圖像像素
- 30. Android SL4A查詢
你是否必須使用SL4A而不是其他的Python端口?Kivy的[Python for Android](http://txzone.net/2012/01/introducing-python-for-android/)附帶了PIL,這將使這更容易。 – abarnert