简体   繁体   English

使用imagick PHP向图像添加水印

[英]Add watermark to image with imagick PHP

I'm adding watermark.png to original.png , but I have 3 problems: 我将watermark.png添加到original.png ,但是我有3个问题:

  1. I want to set watermatk.png on the bottom right 我想在右下角设置watermatk.png
  2. I want to resize watermark.png and make it smaller or bigger 我想调整watermark.png大小并将其放大或缩小
  3. Is there any way to make watermark transparent if background was white? 如果背景为白色,有什么方法可以使水印透明?

<?php
// Open the original image
$image = new Imagick();
$image->readImage("./man/original.png");

// Open the watermark
$watermark = new Imagick();
$watermark->readImage("./man/watermark.png");

// Overlay the watermark on the original image
$image->compositeImage($watermark, imagick::COMPOSITE_OVER, 0, 0);

// send the result to the browser
header("Content-Type: image/" . $image->getImageFormat());
echo $image;

There is actually a "watermark" command which will handle your opacity issue. 实际上有一个“水印”命令可以处理您的不透明度问题。 Combine it with gravity + geometry to get the size and position that you want. 将其与重力+几何形状结合起来以获取所需的尺寸和位置。

composite -watermark 30% -gravity north -geometry 150x150+100+50 watermark.png input.jpg output.png

Something like that. 这样的事情。 I have not tried this, but hopefully it gets you on your way. 我没有尝试过,但是希望它可以帮助您。 Let us know how it works out. 让我们知道结果如何。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM