PHP GD庫解析一張簡單圖片並輸出

CrazyCodes發表於2020-10-22

這裡只演示一下2種顏色值的圖片,簡單描述下概念。

首先要安裝下GD庫。否則下面的程式碼執行不了。

$size = getimagesize('2.png');  // 獲取圖片大小 
$res = imagecreatefrompng('2.png'); // 獲取指定圖片的資源物件

for ($i = 0; $i < $size[1]; ++$i) {
    for ($j = 0; $j < $size[0]; ++$j) {
        $rgb = imagecolorat($res, $i, $j); // 獲取座標索引

        $rgbarray = imagecolorsforindex($res, $rgb); // 獲取每個座標的rgb顏色


        $sum = $rgbarray['red'] + $rgbarray['green'] + $rgbarray['blue']; // rgb顏色數值相加,主要為了區分

        /**
         * 演示圖片有純黑色 rgb(0,0,0) 顏色和其他顏色組成
         */
        if ($sum == 0) {
            $data[$i][$j] = 1;
        } else {
            $data[$i][$j] = 2;
        }

}

上述程式碼已經生成了整張圖片每個畫素的顏色塊。

echo "<div style='border:1px solid #ccc;width: {$size[1]}px;height: {$size[0]}px;'>";
	
	for ($i = 0; $i < count ($data); $i++) {
		if (array_sum ($data[$i]) != 200) {
			for ($j = 0; $j < count ($data[$i]); $j++) {
				if ($data[$i][$j] == 1) {
					echo '<div style="width:1px;height:1px;background: #cccccc;float:left;"></div>';
				} else {
					echo '<div style="width:1px;height:1px;background: red;float:left;"></div>';
				}
			}
		}
	}
	
	echo "</div>";

通過上述程式碼就可以生成一個與指定圖片一樣的通過畫素塊堆積出來的圖片。

similar_text 函式可以判斷2個值的相似度。我再考慮是否可以使用a圖片的二進位制碼和b圖片的比對。判斷相似度呢。
僅僅是個概念,還再繼續研究,這樣就可以實現文字識別的功能了。

相關文章