php - 在PHP中合并两张图片
问题描述
我需要在 PHP 中组合两个图像。主图片为PNG,次要图片为JPG。
第一张图:
次要图片:
测试: http ://happywin.konektor.grafikstudio-m.com/imageMerge/
<?php
$dest = imagecreatefrompng('muster.png');
$src = imagecreatefromjpeg("test.jpg");
imagecolortransparent($src);
imagesavealpha($dest, false);
imagealphablending($src, true);
imagesavealpha($src, true);
imagecopymerge($dest, $src, 0, 0, 0, -100, 2000, 1300, 50);
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
我需要连接图片并使用白色背景
解决方案
创建一个与 muster.png 大小相同的画布图像,并用白色填充它。
$muster = imagecreatefrompng('muster.png');
$canvas = imagecreatetruecolor(imagesx($muster), imagesy($muster));
$white = imagecolorallocate($canvas, 255, 255, 255);
imagefill($canvas, 0, 0, $white);
打开 test.jpg 并使用左上角的像素颜色作为透明颜色。
$test = imagecreatefromjpeg('test.jpg');
imagecolortransparent($test, imagecolorallocate($test, 255, 255, 255));
将 2 个图像复制到画布上,顺序是可选的,注意复制 muster.png (truecolor) 与imagecopy
但复制 test.jpg (pallete) 与imagecopymerge
.
imagecopy($canvas, $muster, 0, 0, 0, 0, imagesx($muster), imagesy($muster));
imagecopymerge($canvas, $test, 0, 100, 0, 0, imagesx($test), imagesy($test), 100);
header('Content-Type: image/png');
imagepng($canvas);
// ...destroy
推荐阅读
- javascript - 允许通知而不单击按钮
- kubernetes - pvc 如何决定在 kubernetes 中绑定哪个 pv
- git - Git 分支合并在 Visual Studio 中无法正常工作
- python - 在 Python 中播放声音,并能够在播放过程中将其切断
- c - 有没有办法用 SO_KEEPALIVE 设置特定的应用程序超时,而不是取决于系统默认超时,即 C 中的 2 小时
- python - 分组还是转置?
- python - 如何在 Pandas 数据框中添加整数表示的列
- c# - 使用实体框架 C# 从数据库表中删除行数据
- javascript - 使用 vue.router 重定向到绝对路径
- android - 如何在 Android TV 中切换音频设备?