是否有可以逐像素提取圖像的所有十六進制顏色值的實用程序?或者這是用手工程序完成的嗎?我知道你可以使用GIMP或Inkscape和吸管工具,但我想知道如何用程序來做到這一點。 謝謝。提取圖像中每個像素的十六進制值
回答
您可以使用舊的netpbm系列實用程序。 應該有一個程序可以從任何格式轉換爲ppm,然後從ppm使用。 ppmtoxpm會將ppm文件轉換爲xpm格式,該格式包含十六進制格式的顏色值。
GIMP可以保存文件的許多不同的格式,也許它可以照顧... – 2011-05-30 22:07:28
我用GIMP保存圖像作爲一個HTML表,這不是我正在尋找,但它確實沒問題。我只是使用Python讀取文件,然後纔可以使用re模塊將其修剪爲十六進制值。這不是很好,但總比沒有好。 – 2011-05-30 22:11:54
我不知道現成的程序會這樣做。你究竟想要做什麼?將其導出到文件?只是看看它?我懷疑在任何支持圖像快速轉換的編程語言中,這都會非常容易。例如,如果您想要在網站上顯示上傳圖像的像素顏色,則可以使用PHP的GD庫至fetch the image size並將圖像遍歷到get the colors of each pixel。
如果你正在尋找的東西更多的客戶端,如將在Windows上運行的可執行文件,我建議抽絲的Visual C#速成的加載圖像拷貝到Bitmap對象,並使用Size財產GetPixel方法。
GIMP確實可以將圖像保存爲.xpm文件。我試了一下,效果很好。它非常精細,所以它非常適合查看,並且像HTML表格一樣,它僅適用於提取值。我沒有看到任何提取這些值的東西,但這並不重要,因爲提取它們非常簡單...對我來說已經足夠了。
您可以使用Canvas元素(buzzword:HTML5),然後使用JavaScript來獲取像素值。
編輯:
看看這個工作JSFiddle demo(使用RELOAD如果沒有在第一次工作)。只是爲了表現出一定的可能性...
var img = document.getElementsByTagName("img")[0];
var canvas = document.getElementsByTagName("canvas")[0];
var context = canvas.getContext("2d");
img.src = img_src;
img.onload = function (event) {
canvas.width = img.width;
canvas.height = img.height;
context.drawImage(img, 0, 0, img.width, img.height);
}
canvas.onmousemove = function (event) {
document.getElementsByTagName("div")[0].innerHTML = event.clientX - canvas.clientX;
var x = event.clientX;
var y = event.clientY;
var imgDat = context.getImageData(x, y, 1, 1);
var color = "#" + dec2hex(imgDat.data[0]) +
dec2hex(imgDat.data[1]) +
dec2hex(imgDat.data[2]);
document.getElementsByTagName("div")[0].innerHTML = color;
document.body.style.background = color;
};
var dec2hex = function(d) {
var s = "00" + Number(d).toString(16);
return s.substring(s.length - 2);
}
from PIL import Image
rgb = Image.open('example.jpg').convert('RGB')
width,height = rgb.size
pixels = rgb.load()
for y in range(height):
for x in range(width):
print '#%02x%02x%02x ' % pixels[x,y]
- 1. 十六進制值不寫入圖像
- 2. 如何將圖像分割爲十六進制代碼像素?
- 3. 從數據庫中的十六進制值創建PHP圖像
- 4. 確定C#中圖像的顏色十六進制值
- 5. 將十六進制拆分爲2個十六進制值
- 6. 十六進制值
- 7. 如何以十六進制顏色(6位數)輸出圖像的每個像素的所有顏色
- 8. 如何從MySQL中的BLOB列中提取十六進制值
- 9. 檢索給定像素的顏色的十六進制代碼
- 10. 獲取不同的十六進制值
- 11. 從編碼百分比的URL中提取十六進制值
- 12. 將多個十六進制顏色轉換爲圖像
- 13. 在perl中從行中提取十六進制值
- 14. 添加十六進制值以得到十六進制結果
- 15. 轉換十六進制字符串十六進制值
- 16. 如何從十六進制值中提取低位字節?
- 17. 將十進制轉換爲十六進制和十六進制
- 18. 輸入十六進制並用C++讀取十六進制
- 19. QSerialPort分別讀取十六進制值
- 20. 選擇一個十六進制附近的十六進制數
- 21. 解釋十六進制值?
- 22. 存儲十六進制值
- 23. 從十六進制值
- 24. Xamarin.Forms.Color到十六進制值
- 25. 十六進制值在Android
- 26. 插入十六進制值
- 27. XML xs:int十六進制值
- 28. MySQLIMPORT十六進制值
- 29. 價值爲十六進制
- 30. 從控制檯中獲取一個十六進制值C
你想用什麼語言來使用? – 2011-05-30 21:45:11
Python或Common Lisp ... – 2011-05-30 22:06:22