imagefttext()函数(php)增加图像大小

时间:2019-04-15 05:24:58

标签: php watermark

将水印放入图像中。使用php的imagefttext()函数,可以增加图像的大小。

可以通过任何方式解决此问题吗?

实际结果:-图片原始大小:-10.8 MB

此过程后:-新图片大小:-37.9 MB

`$ text =“ Afrophoto”;

$ font_file ='timesnewarial.ttf';

//创建新图像

$ newImg = imagecreatefromjpeg($ image);

//将水印字体颜色设置为红色

$ fontColor = imagecolorallocate($ newImg,255,255,255);

list($ width,$ height)= getimagesize($ image);

$ fontSize = $ width / 100;

//在创建的图像上写水印

for($ i = 15; $ i <=($ height); $ i + =($ height / 10)){

for($ j = 15; $ j <=($ width); $ j + =($ width / 10)){

imagefttext($ newImg,$ fontSize,50,$ j,$ i,$ fontColor,$ font_file,$ text);

}

}

//将带有水印的新图像输出到文件

imagejpeg($ newImg,“ uploads /".$_ FILES [$ field] ['name'],100);

imagepng($ newImg,“ uploads /".$_ FILES [$ field] ['name']。”。png“);

imagedestroy($ newImg);`

1 个答案:

答案 0 :(得分:0)

我在这里使用了Png图片

实际大小为banned.png:53.2KB

带有水印bbimage_3.png:40.8 KB

<?php
$imageURL = "banned.png";
list($width,$height) = getimagesize($imageURL);
$imageProperties = imagecreatetruecolor($width, $height);
$targetLayer = imagecreatefrompng($imageURL);
imagecopyresampled($imageProperties, $targetLayer, 0, 0, 0, 0, $width, $height, $width, $height);
$WaterMarkText = 'CONFIDENTIAL';
$watermarkColor = imagecolorallocate($imageProperties, 191,191,191);
imagestring($imageProperties, 5, 130, 117, $WaterMarkText, $watermarkColor);
imagepng($imageProperties, 'bbimage_3.png');
header('Content-type: image/jpeg');
imagepng ($imageProperties);
imagedestroy($targetLayer);
imagedestroy($imageProperties);
?>

图像复制::此功能通过覆盖目标图像像素将源图像复制到目标图像上。

在合并带有透明背景作为水印的png图像时,imagecopymerge()函数将不会保留目标上的透明性。因此,最好使用imagecopy()进行图像水印处理。