图片下水印(9gag.com风格)

Posted

技术标签:

【中文标题】图片下水印(9gag.com风格)【英文标题】:Watermark under the picture (9gag.com style) 【发布时间】:2012-03-18 12:53:44 【问题描述】:

我想在这个网站上做水印:http://9gag.com

它的主要作用是在图像下方放置一条条带,而不是将其放在图片中。我想使用带有 GD 库的 php 来实现它。任何帮助将不胜感激,最好是一个示例代码或准备使用一个:)

您好!

【问题讨论】:

【参考方案1】:

创建一个高 x 像素的图像,将原始图像复制到位置(0,0),然后将水印复制到位置(0,original_height)

$image = 'foo.jpg';
$watermark = 'watermark.png';
$imagesize = getimagesize($image);
$watermarksize = getimagesize($watermark);
$img = imagecreatetruecolor($imagesize[0], $imagesize[1] + $watermarksize[1]);
imagecopy($img, imagecreatefromjpeg($image), 0, 0, 0, 0, $imagesize[0], $imagesize[1]);
imagecopy($img, imagecreatefrompng($watermark), 0, $imagesize[1], 0, 0, $watermarksize[0], $watermarksize[1]);
imagejpeg($img);

未经测试,但应该可以这样工作。代码假设水印不比原图宽。

【讨论】:

不处理可变图像宽度。 好吧,在我检查之后,我可以说,它适用于可变图像宽度,直到水印宽度小于图像,这很好! @ThiefMaster 你能告诉我如何更改此条纹的背景颜色以及如何在右下角制作水印吗? (现在它在左下角)。首先非常感谢! imagecolorallocate() 创建颜色,imagefilledrectangle() 绘制一个框(使用与第二个 imagecopy() 调用相同的大小,并在调用该函数之前放置代码)。您也可以在复制任何内容之前简单地 imagefill() 整个图像。 你能把这些函数放在你提供的代码中吗?只是右边的水印和任何颜色,我稍后会更改它。 (顺便说一句,水印向右的位置变化不会破坏整个条带扩展?)。【参考方案2】:

如果你想让它看起来不错,那就没那么容易了。

底部条纹需要 3 个块,即底部条纹的左、中和右。建议所有 3 个块具有相同的高度。

使用

imagecreatetruecolor(imagesx($original_picture), imagesy($original_picture)+$stripe_height);

然后:

左边是imagecopymerge(...) 右侧是imagecopymerge(...),但您需要通过从输入图像的宽度中减去右侧块的宽度来计算 x 目标 在左右之间(再次,做数学,很简单)使用imagecopyresize(...) 来添加中间块。使用该函数确保它在左右块之间线性缩放。

【讨论】:

格里戈尔你是漫画家吗?简单的绘图,但它有一些东西:D 和顺便说一句。我看你知道你在说什么,也许你可以为我准备一些准备使用的代码? 哈哈,这只是 Snipping Tool 的默认凿子,我有一个 IBM X61T。此外,没有时间写整个事情,但它很容易做到。如果你做不到,那就去 Elance,付一个印度人 15 美元给你做。

以上是关于图片下水印(9gag.com风格)的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow从1到2(十三)图片风格迁移

风格迁移

Neural Style Transfer

风格迁移试玩

风格迁移试玩

图片风格迁移:基于实例缓解细节丢失人脸风格化失败问题