PHP 水印設置

1、圖片水印

<?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() 函數動態地計算圖像大小編碼

 

2、文字水印

<?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圖片

相關文章
相關標籤/搜索