比较2个图像以查看它们是否都是相同的文件很容易,抛出文件MD5,但是通过使用PHP GD来确定两个图像的差异是否有可能甚至是合理的来确定2个图像是否相同.如果我们在哪里得到两者的差异,并且它全部为白色(id假设为白色甚至是黑色),那么我们现在就知道它们的相同照片了吗?
另外注意:id想要知道是否可以获得2张相同大小的图像来创建洋葱皮效果,1%和50%透明度为50%.
我正在为一个项目开发一个自定义的头像系统,但我从来没有真正做过PHP的图像方面.我想我需要以某种方式使用GD,但我不知道从哪里开始.
基本上,有一堆预先制作的透明PNG图像.用户可以选择其中的2-3个来自定义他们的头像,我希望能够拍摄这些图像并从中制作单个图像以存储在文件夹中.
是否可以删除PHP中图像周围的空白?
注意:澄清我的意思是像photoshops修剪功能.
谢谢.
我正在为我的用户设置动态论坛签名图像,我希望能够将他们的用户名放在图像上.我能够做到这一点很好,但由于用户名是不同的长度,我想对齐用户名,当我必须设置x和y坐标时,我怎么能这样做.
$im = imagecreatefromjpeg("/path/to/base/image.jpg");
$text = "Username";
$font = "Font.ttf";
$black = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 217, 15, $black, $font, $text);
imagejpeg($im, null, 90);
Run Code Online (Sandbox Code Playgroud) 尝试imagecreatefromjpeg使用此Dockerfile方法生成容器时,我遇到了麻烦:
FROM php:7.1-apache
RUN apt-get update && \
apt-get install -y -qq git \
libjpeg62-turbo-dev \
apt-transport-https \
libfreetype6-dev \
libmcrypt-dev \
libpng12-dev \
libssl-dev \
zip unzip \
nodejs \
npm \
wget \
vim
RUN pecl install redis && docker-php-ext-enable redis
RUN docker-php-ext-install -j$(nproc) iconv mcrypt zip pdo pdo_mysql gd bcmath
COPY ./containers/yii.conf /etc/apache2/sites-available/000-default.conf
RUN for mod in rewrite headers; do a2enmod $mod; done && service apache2 restart
WORKDIR /var/www/html/
Run Code Online (Sandbox Code Playgroud)
GD已正确安装(libjpeg也 - 出现在php …
我正在尝试创建一个透明的png图像,并将各种其他png和jpgs分层,以创建一个具有透明度的最终png.我在创建我的初始空透明png时遇到了麻烦.它目前有白色背景.
任何人都可以指出我正确的方向.到目前为止这是我的代码......
$image = imagecreatetruecolor(485, 500);
imagealphablending($image, false);
imagesavealpha($image, true);
$col=imagecolorallocatealpha($image,255,255,255,127);
imagefill($image, 0, 0, $col);
//imagefilledrectangle($image,0,0,485, 500,$col);
/* add door glass */
$img_doorGlass = imagecreatefrompng("glass/$doorStyle/$doorGlass.png");
imagecopyresampled($image, $img_doorGlass, 106, 15, 0, 0, 185, 450, 185, 450);
/* add door */
$img_doorStyle = imagecreatefrompng("door/$doorStyle/$doorStyle"."_"."$doorColor.png");
imagecopyresampled($image, $img_doorStyle, 106, 15, 0, 0, 185, 450, 185, 450);
$fn = md5(microtime()."door_builder").".png";
if(imagepng($image, "user_doors/$fn", 1)){
echo "user_doors/$fn";
}
imagedestroy($image);
Run Code Online (Sandbox Code Playgroud) 好吧,我的问题很简单,我只是想将imagepng/ imagejpg 的输出转换为base64,我该怎么做?正确的方法是捕获输出缓冲区?谢谢.
我正在我的网站上创建一个新功能,允许人们向朋友发送明信片.在这一部分,他们可以选择他们想要发送的图像(他们已经将图像上传到他们的个人资料 - >我的图片部分)
我正在使用php函数创建右侧的文本,但如何使用文本将另一个图像添加到此图像?
我imagettftext用来创建文本,imagecreatefromjpeg打开主图像(见下文)和imagedestroy完成后
谢谢
我正在使用这张明信片:

我正在创建一个"图像生成器",用户可以上传图像并在其上添加文本和/或绘图.输出的图像是固定大小(698x450).
在客户端,当用户上传他们的图像时,它被设置为具有背景大小:封面的698x450的div的背景.这使它很好地填补了这个区域.
最终的组合图像由PHP使用GD函数生成.我的问题是,如何在PHP中使用与在CSS中相同的方式来扩展图像.我希望PHP脚本的结果看起来像在CSS中设置图像一样.有谁知道浏览器如何使用background-size:cover计算如何适当缩放图像?我想把它翻译成PHP.
谢谢
什么可以导致php gd在调整大小后产生黑色图像?以下代码始终为每个有效的jpeg文件输出黑色图像.
<?php
$filename = 'test.jpg';
$percent = 0.5;
header('Content-Type: image/jpeg');
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb);
imagedestroy($thumb);
?>
Run Code Online (Sandbox Code Playgroud)
输出gd_info():
Array
(
[GD Version] => bundled (2.1.0 compatible)
[FreeType Support] => 1
[FreeType Linkage] => with freetype
[T1Lib Support] =>
[GIF Read Support] => 1
[GIF Create Support] => 1
[JPEG Support] …Run Code Online (Sandbox Code Playgroud)