亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師講的有一個問題

用imagecopymerge();函數是混合模式的,將兩個圖片混合了,所以png圖片的透明效果就沒了

用imagecopy();函數直接合并,所有最后保留了透明效果。

正在回答

3 回答

我的代碼都實驗過的,,同學,,我沒有實驗過,也不可能去回答的,,

<?php
//這是整體代碼
$src='images/001.jpg';
$info=getimagesize($src);
$type=image_type_to_extension($info[2],false);
$fun="imagecreatefrom{$type}";
$image=$fun($src);

/*操作水印圖片*/
	//1.設置水印路徑
	$imageMark='images/logo.png';
	//2.獲取水印圖片基本信息
	$info2=getimagesize($imageMark);
	//3.獲取水印圖片類型
	$type2=image_type_to_extension($info2[2],false);
	//4.創建水印圖像類型
	$fun2="imagecreatefrom{$type2}";
	//5.把水印圖片復制到內存中
	$water=$fun2($imageMark);
	//6.合并圖片當最后一個參數設置為100時和imagecopy一樣
	imagecopymerge($image,?$water,?20,?30,?0,?0,?$info2[0],?$info2[1],20);
	
	//imagecopy($image,?$water,?20,?30,?0,?0,?$info2[0],?$info2[1]);
	//7.銷毀水印圖片;
	imagedestroy($water);
/*輸出圖片*/
	header('Content-type:'.$info['mime']);
	$func="image{$type}";
	$func($image);
	imagedestroy($image);

?>
imagecopymerge($image,?$water,?20,?30,?0,?0,?$info2[0],?$info2[1],20);?//最后一個參數為20時效果如下:

http://img1.sycdn.imooc.com//575d862400019ecb03570208.jpg

imagecopymerge($image,?$water,?20,?30,?0,?0,?$info2[0],?$info2[1],50);??//最后一個參數時50時的效果:

http://img1.sycdn.imooc.com//575d869b0001fe5903980342.jpg

imagecopymerge($image,?$water,?20,?30,?0,?0,?$info2[0],?$info2[1],100);?//最后一個參數時100時的效果:

http://img1.sycdn.imooc.com//575d86e70001172b03470308.jpg

imagecopy($image,?$water,?20,?30,?0,?0,?$info2[0],?$info2[1]);??//使用imagecopy()的效果

http://img1.sycdn.imooc.com//575d87480001250603300347.jpg

所以:最后我得出的結論時:

imagecopymerge()最后一個參數是設置png圖片不透明部分復制到目標圖片時的透明度的吧,

當它的最后一個參數等于100時,和imagecopy()是一樣的,,

php官方手冊的說法是:

bool imagecopymerge ? ?( resource $dst_im ? , resource $src_im ? , int $dst_x ? , int $dst_y ? , int $src_x ? , int $src_y ? , int $src_w ? , int $src_h ? , int $pct ? )

將 src_im 圖像中坐標從 ? ?src_x,src_y ?? ?開始,寬度為 src_w,高度為 src_h ? ?的一部分拷貝到 ? ?dst_im 圖像中坐標為 ? ?dst_x 和 dst_y ? ?的位置上。兩圖像將根據 pct ? ?來決定合并程度,其值范圍從 0 到 100。當 pct = 0 ? ?時,實際上什么也沒做,當為 100 時對于調色板圖像本函數和 ? ?imagecopy() 完全一樣,它對真彩色圖像實現了 alpha 透明。?

最后:因為學習這個課程好久了,,如果有錯誤望指出,,大家一起學習,

1 回復 有任何疑惑可以回復我~

imagecopymerge()最后一個參數是設置png圖片不透明部分復制到目標圖片時的透明度的吧,

當它的最后一個參數等于100時,和imagecopy()是一樣的,,

0 回復 有任何疑惑可以回復我~
#1

小王子抓貓咪

你自己試驗過imagecopymerge()最后一個參數傳100的情況嗎。麻煩你自己先試驗一下,看看效果,再來回答人家的問題。
2016-06-12 回復 有任何疑惑可以回復我~
#2

王小仙 回復 小王子抓貓咪

同學,,請看一下我下面的回答,,對你的疑問做出的一些解釋,,謝謝你,
2016-06-13 回復 有任何疑惑可以回復我~

用imagecopymerge();函數是混合模式的,將兩個圖片混合了,所以png圖片的透明效果就沒了

用imagecopy();函數直接合并,所有最后保留了透明效果。


0 回復 有任何疑惑可以回復我~
#1

小王子抓貓咪

你是對的
2016-06-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

老師講的有一個問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號