Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比例水印_Php - Fatal编程技术网

Php 比例水印

Php 比例水印,php,Php,我有水印,我想适应图像 我希望水印始终位于左上角,与图像相比,它是非常好的10% 我试着用这个 $scale = min( $watermark_o_width / $imageSize[0], $watermark_o_height / $imageSize[1] ); $newWatermarkWidth = $watermark_o_width * $scale; $newWatermarkHeight = $watermark_o_height * $scale; 但是尺寸不

我有水印,我想适应图像

我希望水印始终位于左上角,与图像相比,它是非常好的10%

我试着用这个

$scale = min(
    $watermark_o_width / $imageSize[0], $watermark_o_height / $imageSize[1]
);

$newWatermarkWidth = $watermark_o_width * $scale;
$newWatermarkHeight = $watermark_o_height * $scale;

但是尺寸不对

获取水印比率:

$watermark_ratio = $watermark_old_width / $watermark_old_height;
确保水印宽度为图像宽度的10%:

$watermark_new_width = $image_width * 0.1;
计算所需的水印高度:

$watermark_new_height = $watermark_new_width / $watermark_ratio;
如果要计算另一个轴,只需使用

$watermark_new_height = $image_height * 0.1;
然后计算所需的宽度:

$watermark_new_width = $watermark_new_height * $watermark_ratio;

到底哪里出了问题?你所说的错误是什么意思?你至少需要在一个轴上计算图像大小的10%。另一个必须保持动态,除非你能忍受通常没有人想要的失真水印。在小图像中,水印非常大,在大图像中,水印非常小,并且我希望我的水印具有最大domension。你需要提供更多信息。原始图像的大小;水印的大小;出现的大小;以及上面的计算结果。你用什么库来进行图像处理?GD?ImageMagick?GD使用imagecopyresized和ImageCopyResample在GD方法调用中注意质量参数。示例:imagejpeg$anything,NULL,90;90是以百分比表示的质量。了解如何将质量参数应用于正在使用的函数。例如,在小图像中300x300松散质量在大图像中,如800*600我的水印是好的$Watermark=imagecreatefrompng'images/Watermark.png';ImageAlpha$watermark,true;imagesavealpha$水印,为真;不变