您可以使用GD在PHP創建文本水印。以下代碼使用PDO 代替已棄用的mysql_
函數。水印添加到.png文件。如果使用其他文件類型,則需要更改imagecreatefrompng()
和標題以適合。如果圖像存儲爲blob
(不推薦),請使用imagecreatefromstring()
以及與圖像文件類型相關的標題。
<?php
function ImageStringCenter($image, $fontSize, $lineNumber, $totalLines, $text, $color) {
$centerX = ceil((imagesx($image) - (ImageFontWidth($fontSize) * strlen($text)))/2);
$centerY = ceil(((imagesy($image) - (ImageFontHeight($fontSize) * $totalLines))/2) + (($lineNumber-1) * ImageFontHeight($fontSize)));
ImageString($image, $fontSize, $centerX, $centerY, $text, $color);
}
require("dbinfo.php");//database connection paramerters
$id = 1;
//Connect to database
$dbh = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
// Prepare statement
$stmt = $dbh->prepare("SELECT * FROM images WHERE id = ?");
// Assign parameters
$stmt->bindParam(1,$id);
//Execute query
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
// Fetch Result
$result = $stmt -> fetch();
$image1 = $result["image2"];
$im = imagecreatefrompng($image1);//for .png file
$text_color = imagecolorallocate($im, 266, 266, 266);
ImageStringCenter($im, 5, 1, 2, "Watermark", $text_color);
ImageStringCenter($im, 5, 2, 2, "20/02/2013", $text_color);
header("Content-Type: image/png");//for .png file
imagepng($im);
imagedestroy($image1);
}
catch(PDOException $e) {
echo "The following error occured.". $e->getMessage() ;// Remove or modify after testing
file_put_contents('PDOErrors.txt',date('[Y-m-d H:i:s]').", mapSelect.php, ". $e->getMessage()."\r\n", FILE_APPEND);
}
//Close the connection
$dbh = null;
?>
樣品水印 ![Sample watermark](https://i.stack.imgur.com/XopP3.jpg)
你必須在數據庫中的圖像數據,或者某種路徑的文件? – complex857 2013-02-22 15:31:57
[**請勿在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-02-22 15:32:48
@ complex857:我在數據庫中存儲圖像數據:列名是「img」 – 2013-02-22 15:51:57