gpt4 book ai didi

php - 如何在从mysql检索到的图像上加水印

转载 作者:行者123 更新时间:2023-11-29 00:34:31 25 4
gpt4 key购买 nike

我需要一些帮助。

下面是我的代码,它检索存储在我的数据库中的所有图像,如果它运行保存为 index.php 的第一 block 代码,它正在显示,但我想在我之后添加水印检索即;在显示这些图像之前。是否可以在之后集成水印,或者我们只能在之前集成水印?

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$query = mysql_query("SELECT * FROM images ORDER BY id DESC") or die(mysql_error());
while( $result = mysql_fetch_array($query) ){
$id = $result['id'];
echo "<img src=img.php?id=$id>";
?>

在 img.php 中

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$id = $_REQUEST['id'];
$query = mysql_query("SELECT * FROM images WHERE id='$id'") or die(mysql_error());
$image = mysql_fetch_assoc($query);
$image1 = $image['image'];
header('Content-type:image/jpeg');
echo $image1;

最佳答案

您应该将图像存储为链接而不是 blob。但是由于现有的图像数据库,以下代码将在存储为 blob 的图像上放置水印。它使用 PDO 而不是已弃用的 mysql_ 函数。

<?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");
// Opens a connection to a mySQL server
$connection=mysql_connect ($host, $username, $password);
if (!$connection) {
die("Not connected : " . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ("Can\'t use db : " . mysql_error());
}

$id = 1;
$query = mysql_query("SELECT * FROM images WHERE id='$id'") or die(mysql_error());
$image = mysql_fetch_assoc($query);
$image1 = $image['image'];
//Use imagecreatefrompng,imagecreatefromgif, imagecreatefromjpeg ,etc for othertypes
$im = imagecreatefromstring($image1);////For blobs
$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");//blob .png file
imagepng($im);
imagedestroy($image1);
?>

数据库

database

图片上的水印

watermark

关于php - 如何在从mysql检索到的图像上加水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com