添加两个图像 PHP

Posted

技术标签:

【中文标题】添加两个图像 PHP【英文标题】:Adding two images PHP 【发布时间】:2015-01-23 03:11:54 【问题描述】:

我需要这个:

我正在这样做:

$top_file = 'image1.png';
$bottom_file = 'image2.png';

$top = imagecreatefrompng($top_file);
$bottom = imagecreatefrompng($bottom_file);

// get current width/height
list($top_width, $top_height) = getimagesize($top_file);
list($bottom_width, $bottom_height) = getimagesize($bottom_file);

// compute new width/height
$new_width = ($top_width > $bottom_width) ? $top_width : $bottom_width;
$new_height = $top_height + $bottom_height;

// create new image and merge
$new = imagecreate($new_width, $new_height);
imagecopy($new, $top, 0, 0, 0, 0, $top_width, $top_height);
imagecopy($new, $bottom, 0, $top_height+1, 0, 0, $bottom_width, $bottom_height);

// save to file
imagepng($new, 'merged_image.png');

.. 但合并后的图像没有两个图像。 php 报告这个:

Warning: imagecreatefrompng(): '/Users/myusername/Work/www/projectname/staticimage.jpg' is not a valid PNG file in /Users/myusername/Work/www/projectname/imageWatermark.php on line 60

Warning: imagecopy() expects parameter 2 to be resource, boolean given in /Users/myusername/Work/www/projectname/imageWatermark.php on line 74

【问题讨论】:

它对我来说很好用。可以看到两张图片。 这里也一样。图像损坏?文件不存在? 顺便说一句,你可以使用$new_width = max($top_width, $bottom_width) 是的。我检查了不同的图像,然后发现图像损坏了。 是的,请提交答案,可能对其他人有帮助。 【参考方案1】:

如 cmets 中所说/已解决,以及您使用错误报告后显示的警告:

这两个文件都必须是.png,您使用的是.jpg

imagecreatefrompng(): '/Users/myusername/Work/www/projectname/staticimage.jpg'

您不能混合使用两种不同的文件/图像格式,而不是将imagecreatefrompng().jpg 文件一起使用。

旁注:简单地将 .jpg 重命名为 .png 是行不通的,因为这最终会成为一个损坏的文件(对于初学者)并且仍然会抛出一个警告,就像一个快速的仅供参考。它必须是实际的 PNG 图像格式。

但是,您可以这样做:(如果您希望同时使用不同文件中的两种文件格式),则需要使用两种不同的函数以及它们各自的图像格式。

$top_file = 'image1.png';
$bottom_file = 'image2.jpg';

$top = imagecreatefrompng($top_file);
$bottom = imagecreatefromjpeg($bottom_file);

error reporting 添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应该只在暂存阶段完成,而不是在生产阶段。

【讨论】:

以上是关于添加两个图像 PHP的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP GD 合并两个图像 (.JPG)

PHP 邮件功能 - 添加外部图像

在 PHP 中将一个图像添加到另一个图像的底部

在 PHP 中上传图像时在图像上添加文本

如何将图像添加到 PHP 中的图像上,如水印

为在 PHP 中创建的图像添加边框