2012-05-29 61 views
0

我的任務是處理一個問題,我需要從1000個圖像集合中提取一個圖像,並根據get查詢中傳遞的參數將其提供給用戶。 這很簡單。偶爾,我被要求以這樣一種方式提供圖像,即使每次同一個文件都是服務器,圖像文件的sha1散列應該會有所不同。使用GD庫的圖像隨機化

爲了達到這個目的,我們可以在隨機的地方在圖像背景中添加隨機像素。

誰能告訴我怎樣可以使用的GD庫

回答

0

使用Imagesetpixel達致這。

$img = imagecreatefrompng('your_image.png'); 
$red = imagecolorallocate($img, 255, 0, 0); 
imagesetpixel($img, $x, $y, $red); 
........ 
........ 

另一方面,爲什麼要在每個請求中更改圖像的sha1哈希值?

編輯:既然你想有一個透明像素,您將需要imagealphablending和這樣的:

$img = imagecreatefrompng('your_image.png'); 
imagealphablending($img, false); 
$transparent = imagecolorallocatealpha($img, 255, 255, 255, 127); 
imagesetpixel($img, $x, $y, $transparent); 
imagesavealpha($img, true);   
imagepng($img, 'my_saved_file.png'); 
+0

謝謝!我需要添加一個透明像素而不是紅色的點!我會怎麼做?我的老闆向我提出了這個要求,所以我不知道他爲什麼需要這個功能 –

+0

我編輯了我的答案 – mpratt

+0

嗨,我嘗試使用您提供的代碼。非常幸運,透明像素在圖像上顯示爲黑點。任何想法,爲什麼會發生這種情況? –