<?php /* 覆蓋水印 */ $image = ImageCreateFromJPEG('memcached.jpg'); $stamp = ImageCreateFromPNG('php.png'); $margin = ['right'=>10, 'bottom'=>10]; // 距離邊界的偏移量 $opacity = 50; // 不透明值 // @param 目標(圖像) // @param 源(水印) // @param 水印 x 座標:目標圖像的寬度 - 水印的寬度 - 偏移量 // @param 水印 y 座標:目標圖像的高度 - 水印的高度 - 偏移量 // @param 後 4 個參數做爲水印的大小 // @param 不透明度 ImageCopyMerge($image, $stamp, imagesx($image) - imagesx($stamp) - $margin['right'], imagesy($image) - imagesy($stamp) - $margin['bottom'], 0, 0, imagesx($stamp), imagesy($stamp), $opacity ); header('Content-type: image/png'); ImageJpeg($image); ImageDestroy($image); ImageDestroy($stamp);
說明:php
ImageCopyMerge() 函數容許將一個圖像放置在另外一個圖像上面,它的最後一個參數用來設置不透明度(0 - 100 之間,越小水印越淡)memcached
第 五、六、七、8 個參數表示水印的大小(0,0,ImageSX($stamp),ImageSY($stamp) 會複製整個水印圖像)函數
爲了不在腳本中硬編碼寫入圖像的大小,能夠用 ImageSX() 和 ImageSY() 函數動態地計算圖像大小編碼
<?php /* 覆蓋水印 */ $image = ImageCreateFromJPEG('memcached.jpg'); $stamp = ImageCreateFromPNG('php.png'); $margin = ['right'=>10, 'bottom'=>10]; // 距離邊界的偏移量 $opacity = 50; // 不透明值 // 文字水印 $w = 200; $h = 100; $stamp = ImageCreateTrueColor($w, $h); ImageFilledRectangle($stamp, 0, 0, $w - 1, $h - 1, 0xFFFFFF); // 文本 $color = 0x000000; ImageString($stamp, 4, 10, 10, 'I LOVE PHP', $color); ImageString($stamp, 4, 10, 28, 'I LOVE DEVELOPING', $color); ImageString($stamp, 4, 10, 46, 'I LOVE LIFE', $color); // @param 目標(圖像) // @param 源(水印) // @param 水印 x 座標:目標圖像的寬度 - 水印的寬度 - 偏移量 // @param 水印 y 座標:目標圖像的高度 - 水印的高度 - 偏移量 // @param 後 4 個參數做爲水印的大小 // @param 不透明度 ImageCopyMerge($image, $stamp, imagesx($image) - imagesx($stamp) - $margin['right'], imagesy($image) - imagesy($stamp) - $margin['bottom'], 0, 0, imagesx($stamp), imagesy($stamp), $opacity ); header('Content-type: image/png'); ImageJpeg($image); ImageDestroy($image); ImageDestroy($stamp);
參考:blog
<PHP Cookbook>3'rd圖片