鍍金池/ 問答/人工智能  PHP/ PHP圖像處理,imagefill 疑問?

PHP圖像處理,imagefill 疑問?

代碼如下:

<?php
$im = imagecreatetruecolor ( 100, 100 ); // 創(chuàng)建100*100大小的畫布
$red = imagecolorallocate ( $im, 255, 0, 0 ); // 設(shè)置一個顏色變量為紅色

imagefill ( $im, 50, 50, $red ); // 將背景設(shè)為紅色
//imagefill ( $im, 0, 0, $red ); // 將背景設(shè)為紅色

header ( 'Content-type: image/png' ); // 通知瀏覽器這不是文本而是一個圖片
imagepng ( $im ); // 生成PNG格式的圖片輸出給瀏覽器

imagedestroy ( $im );                                    //銷毀圖像資源,釋放畫布占用的內(nèi)存空間

問題:為什么 imagefill ( $im, 50, 50, $red ); imagefill ( $im, 0, 0, $red ); 都是從 0,0 開始,50,50 不起作用?

回答
編輯回答
毀與悔

謝謝回答,譯意我明白了,但實際操作時會出現(xiàn) BUG,不知道是瀏覽器兼容問題還是 PHP版本問題!

AA.JPG

圖片描述

每個色塊大小是 50px*50px


<?php
$im = imagecreatefromjpeg("AA.jpg");
$blue = imagecolorallocate ( $im, 0, 0, 255 ); // 設(shè)置一個顏色變量為紅色

imagefill ( $im, 30, 80, $blue ); // 將背景設(shè)為紅色
//imagefill ( $im, 0, 0, $blue ); // 將背景設(shè)為紅色

header ( 'Content-type: image/jpg' ); // 通知瀏覽器這不是文本而是一個圖片
imagepng( $im ); // 生成PNG格式的圖片輸出給瀏覽器

imagedestroy ( $im ); //銷毀圖像資源,釋放畫布占用的內(nèi)存空間
?>


輸出圖片是這樣的

圖片描述

2018年3月20日 02:18
編輯回答
墨沫

這個很好理解,你看下畫圖程序里面的染色桶,
clipboard.png
只要是一塊畫布,他是不是可以在某個區(qū)域任意一點對畫布上該區(qū)域進(jìn)行色彩填充

這個imagefill 和你那個差不多,都是任意一點“點一下”就會對整個區(qū)域進(jìn)行色彩填充,所以點擊50,50和0,0效果一樣

你要想從50,50開始填充,應(yīng)當(dāng)再建立一塊畫布,上色,然后從50,50開始復(fù)制到原畫布上,imagecopymerge

2017年5月13日 11:00
編輯回答
別傷我

這個是你沒有詳細(xì)閱讀定義

clipboard.png
這里寫了imagefill填充是從image圖像的左上角0,0開始用顏色把與x,y顏色相同相鄰的點全部填充?;氐竭@個問題,你的$im應(yīng)該是個白色的,左上角0,0與x(50),y(50)的顏色是相同的 所以會從左上角開始充滿,然后相鄰的都是同色,所以結(jié)果就是全部變成了紅色

2018年1月13日 13:04