这段代码有什么问题?
<?php
$data = "iVBORw0KGgoAAAANSUhEUgAAAuwAAAUeCAYAAAAl3WRgAAAgAElEQVR4Xuzdz6/vCV3f8TPADIozowg1ETZ2U2Chm6oLuqkdE1clSlzVdEhXLuAPKPwB1X110ZWBpqyMGLoiAe3KRa2bshDclE0xqSDlp4woej5nPJczd+bOmTmv+2Q+d+ZxEkPC3Pfrfs/je0ye8+V7v/exn/rNL/zDhS8CBAgQIECAAAECBE4p8JhgP+Xz4kERIECAAAECBAgQuBIQ7H4QCBAgQIAAAQIECJxYQLCf+Mnx0AgQIECAAAECBAgIdj8DBAgQIECAAAECBE4sINhP/OR4aAQIECBAgAABAgQEu58BAgQIECBAgAABAicWEOwnfnI8NAIECBAgQIAAAQKC3c8AAQIECBAgQIAAgRMLCPYTPzkeGgECBAgQIECAAAHB7meAAAECBAgQIECAwIkFBPuJnxwPjQABAgQIECBAgIBg9zNAgAABAgQIECBA4MQCgv3ET46HRoAAAQIECBAgQECw+xkgQIAAAQIECBAgcGIBwX7iJ8dDI0CAAAECBAgQICDY/QwQIECAAAECBAgQOLGAYD/xk+OhESBAgAABAgQIEBDsfgYIECBAgAABAgQInFhAsJ/4yfHQCBAgQIAAAQIECAh2PwMECBAgQIAAAQIETiwg2E/85HhoBAgQIECAAAECBAS7nwECBAgQIECAAAECJxYQ7Cd+cjw0AgQIECBAgAABAoLdzwABAgQIECBAgACBEwsI9hM/OR4aAQIECBAgQIAAAcHuZ4AAAQIECBAgQIDAiQUE+4mfHA+NAAECBAgQIECAgGD3M0CAAAECBAgQIEDgxAKC/cRPjodGgAABAgQIECBAQLD7GSBAgAABAgQIECBwYgHBfuInx0MjQIAAAQIECBAgINj9DBAgQIAAAQIECBA4sYBgP/GT46ERIECAAAECBAgQEOx+BggQIECAAAECBAicWECwn/jJ8dAIECBAgAABAgQICHY/AwQIECBAgAABAgROLCDYT/zkeGgECBAgQIAAAQIEBLufAQIECBAgQIAAAQInFhDsJ35yPDQCBAgQIECAAAECgt3PAAECBAgQIECAAIETCwj2Ez85HhoBAgQIECBAgAABwe5ngAABAgQIECBAgMCJBQT7iZ8cD40AAQIECBAgQICAYPczQIAAAQIECBAgQODEAoL9xE+Oh0aAAAECBAgQIEBAsPsZIECAAAECBAgQIHBiAcF+4ifHQyNAgAABAgQIECAg2P0MECBAgAABAgQIEDixgGA/8ZPjoREgQIAAAQIECBAQ7H4GCBAgQIAAAQIECJxYQLCf+Mnx0AgQIECAAAECBAgIdj8DBAgQIECAAAECBE4sINhP/OR4aAQIECBAgAABAgQEu58BAgQIECBAgAABAicWEOwnfnI8NAIECBAgQIAAAQKC3c8AAQIECBAgQIAAgRMLCPYTPzkeGgECBAgQIECAAAHB7meAAAECBAg...gQIECAAAECVwHBfuV1ToAAAQIECBAgQKAJCPbmZ02AAAECBAgQIEDgKiDYr7zOCRAgQIAAAQIECDQBwd78rAkQIECAAAECBAhcBQT7ldc5AQIECBAgQIAAgSYg2JufNQECBAgQIECAAIGrgGC/8jonQIAAAQIECBAg0AQEe/OzJkCAAAECBAgQIHAVEOxXXucECBAgQIAAAQIEmoBgb37WBAgQIECAAAECBK4Cgv3K65wAAQIECBAgQIBAExDszc+aAAECBAgQIECAwFVAsF95nRMgQIAAAQIECBBoAoK9+VkTIECAAAECBAgQuAoI9iuvcwIECBAgQIAAAQJNQLA3P2sCBAgQIECAAAECVwHBfuV1ToAAAQIECBAgQKAJCPbmZ02AAAECBAgQIEDgKiDYr7zOCRAgQIAAAQIECDQBwd78rAkQIECAAAECBAhcBQT7ldc5AQIECBAgQIAAgSYg2JufNQECBAgQIECAAIGrgGC/8jonQIAAAQIECBAg0AQEe/OzJkCAAAECBAgQIHAVEOxXXucECBAgQIAAAQIEmoBgb37WBAgQIECAAAECBK4Cgv3K65wAAQIECBAgQIBAExDszc+aAAECBAgQIECAwFVAsF95nRMgQIAAAQIECBBoAoK9+VkTIECAAAECBAgQuAoI9iuvcwIECBAgQIAAAQJNQLA3P2sCBAgQIECAAAECVwHBfuV1ToAAAQIECBAgQKAJCPbmZ02AAAECBAgQIEDgKiDYr7zOCRAgQIAAAQIECDQBwd78rAkQIECAAAECBAhcBQT7ldc5AQIECBAgQIAAgSYg2JufNQECBAgQIECAAIGrgGC/8jonQIAAAQIECBAg0AQEe/OzJkCAAAECBAgQIHAVEOxXXucECBAgQIAAAQIEmoBgb37WBAgQIECAAAECBK4Cgv3K65wAAQIECBAgQIBAExDszc+aAAECBAgQIECAwFVAsF95nRMgQIAAAQIECBBoAoK9+VkTIECAAAECBAgQuAoI9iuvcwIECBAgQIAAAQJNQLA3P2sCBAgQIECAAAECVwHBfuV1ToAAAQIECBAgQKAJCPbmZ02AAAECBAgQIEDgKiDYr7zOCRAgQIAAAQIECDQBwd78rAkQIECAAAECBAhcBQT7ldc5AQIECBAgQIAAgSYg2JufNQECBAgQIECAAIGrgGC/8jonQIAAAQIECBAg0AQEe/OzJkCAAAECBAgQIHAVEOxXXucECBAgQIAAAQIEmoBgb37WBAgQIECAAAECBK4Cgv3K65wAAQIECBAgQIBAExDszc+aAAECBAgQIECAwFVAsF95nRMgQIAAAQIECBBoAoK9+VkTIECAAAECBAgQuAoI9iuvcwIECBAgQIAAAQJNQLA3P2sCBAgQIECAAAECVwHBfuV1ToAAAQIECBAgQKAJCPbmZ02AAAECBAgQIEDgKiDYr7zOCRAgQIAAAQIECDSBAaWRPdih0+LkAAAAAElFTkSuQmCC";
$data = base64_decode($data);
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
?>
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
警告:imagecreatefromstring():gd-png:致命的libpng错误:读取错误:第5行的D:\ wamp\www\img\index.php中的截断数据
警告:imagecreatefromstring():gd-png错误:setjmp在第5行的D:\ wamp\www\img\index.php中返回错误情况
警告:imagecreatefromstring():第5行的D:\ wamp\www\img\index.php中传递的数据不是'PNG'格式
警告:imagecreatefromstring():无法在第5行的D:\ wamp\www\img\index.php中创建GD图像流
发生错误.
谁能帮帮我吗?
谢谢.
我一直在抨击我的头脑简单......
// ....all prev code is fine....
$pasteboard =imagecreatetruecolor($imgs['bg']["width"],$imgs['bg']["height"]);
imagealphablending($pasteboard, false);
imagecopyresampled($pasteboard, $imgs['bg']["img"],0,0,0,0,$imgs['bg']["width"],$imgs['bg']["width"],imagesx($imgs['bg']["img"]),imagesy($imgs['bg']["img"]));
imagecopyresampled($pasteboard, $imgs['photo']["img"],20,20,0,0,$imgs['photo']["width"],$imgs['photo']["width"],imagesx($imgs['photo']["img"]),imagesy($imgs['photo']["img"]));
imagesavealpha($pasteboard,true);
//send it out
$out = $pasteboard;
header('Content-type: image/png');
imagepng($out);
//then garbage collection
Run Code Online (Sandbox Code Playgroud)
给我这个:

HORAY!
完美的alpha png复合...
现在我想旋转它,所以代替$ out = $ pasteboard我这样做:
imagesavealpha($pasteboard,true);
//rotate it
$out = imagerotate($pasteboard,5,imagecolorexactalpha($pasteboard,255,255,255,50),0);
header('Content-type: image/png');
imagepng($out);
Run Code Online (Sandbox Code Playgroud)
遗憾地给了我这个:

BOOOO!
我试过设置颜色像:
imagerotate($pasteboard,5,0x00000000,0);
Run Code Online (Sandbox Code Playgroud)
也是最后一个像:
imagerotate($pasteboard,5,0x00000000,1);
Run Code Online (Sandbox Code Playgroud)
新的空图像采样等等...
没有骰子....
有人可以帮忙吗?
我在centos 7服务器和nginx web服务器上使用laravel web框架,我安装了php71w-gd,当我想上传文件时仍然出现此错误
Intervention \ Image \ Exception \ NotSupportedException
GD Library extension not available with this PHP installation.
Run Code Online (Sandbox Code Playgroud)
你可能需要知道这一点
# php -i | grep gd
/etc/php.d/gd.ini,
gd
gd.jpeg_ignore_warning => 1 => 1
Run Code Online (Sandbox Code Playgroud) 尝试使用Alpine进行部署时出现此错误:
phpoffice/phpspreadsheet 1.2.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile:
FROM php:7.2-alpine
RUN apk update
RUN apk add zlib-dev gd php7-gd
RUN docker-php-ext-install sockets pdo_mysql zip
RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd
Run Code Online (Sandbox Code Playgroud)
错误是詹金斯跑步的输出。我认为这里附近某处失败了...
build:
docker run --rm --tty --user $$(id -u):$$(id -g) \
--volume "$$(pwd)":/app \
--volume "$$(pwd)/ops/jenkins/github.token":/tmp/auth.json \
--volume "$$(pwd)/ops/jenkins/composer_trust_github.com":/root/.ssh/config \
composer install --no-dev
rm -rf ops/docker/app.tar.gz
tar -czvf ops/docker/app.tar.gz -X ops/jenkins/build_excludes .
docker run --rm --tty --user …Run Code Online (Sandbox Code Playgroud) 我必须从PHP脚本创建一个PNG/JPEG图像.简而言之
代码将创建一个html表,并在该页面中包含一个图像.我需要将整个页面保存为图像,将该图像保存在我的服务器中并返回图像的路径(使用webservice).
我可以很好地从imagejpg功能创建图像.我的问题是如何将HTML转换为图像,因为通过Web服务进行处理,因此不能拍摄屏幕截图.
请帮我用PHP将HTML转换为图像
提前致谢
如何从PHP中的图像资源获取base64字符串?但是请注意,我是即时制作图像的,因此不存在URL。
这是我尝试过的方法,但是不起作用:
echo 'data:image/png;base64,'.base64_encode($img);
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:
echo 'data:image/png;base64,'.base64_encode($img);
Run Code Online (Sandbox Code Playgroud) 所以我正在创建一个横幅生成器.
我将在中间添加文本,但希望它完全位于中心.我知道imagettftext可以用来写入横幅,但这不会使它居中.
一个可能的解决方案可能是找到文本的宽度,然后使用一半从横幅宽度的一半取出,但我不知道如何做到这一点.
我使用的是PHP-GD,不想使用其他任何我必须安装的东西.
imagettftext($img, 14, 0, (468 - ((strlen($_GET['description']) * imagefontwidth(imageloadfont('minecraft.ttf'))) / 1)), 85, imagecolorallocate($img, 0, 0, 0), 'minecraft.ttf', $_GET['description']);
Run Code Online (Sandbox Code Playgroud)
上面的代码是上面的结果.小字符串很好,但一定有问题,因为一旦它们变长,它就会失败.
我试图在给定 URL 时检测图像是否为图像。要从 url 保存图像,我使用了以下内容:
// create the image and save it
$imagefile = $URL;
$resource = imagecreatefromstring(file_get_contents($imagefile));
// X amount of quality is the last number
imagejpeg($resource, "images/covers/$imagepath.jpeg", 50);
imagedestroy($resource);
Run Code Online (Sandbox Code Playgroud)
$URL 只是用户提供的图片链接。
我尝试了以下方法:
$imagefile = $addBuildCover;
$resource = imagecreatefromstring(file_get_contents($imagefile));
if ($resource !== false) {
$return['imageGood'] = true;
} else {
$return['imageBad'] = true;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过该代码,并且返回了“imageBad”的正确 JSON 返回值,但在此之前它给了我一个错误:
Warning: file_get_contents(ewffw.png): failed to open stream: No such file or directory in /var/www/clients/client2/web3/web/process/addnewbuild.php on line 116
Warning: imagecreatefromstring(): Empty string or invalid …Run Code Online (Sandbox Code Playgroud) 我有一个装有CentOS 6的VPS,我试图在其中安装PhP GD。sudo yum install php-gd在阅读其他StackOverflow问题时,我已经尝试过了。当我这样做时,我得到以下信息:
Error: Package: php-gd-5.5.21-1.el6.remi.x86_64 (remi-php55)
Requires: gd-last(x86-64) >= 2.1.0-3
Error: Package: php-gd-5.5.21-1.el6.remi.x86_64 (remi-php55)
Requires: libgd.so.3() (64bit)
Run Code Online (Sandbox Code Playgroud)
关于如何安装Php-Gd并解决此问题的任何想法?
我只是将图像加载到内存中
$img = imagecreatefromjpeg($filename);
Run Code Online (Sandbox Code Playgroud)
然后,我对图像应用了一个旋转:
$r_img = imagerotate($img, $angle, 0);
Run Code Online (Sandbox Code Playgroud)
根据文档,imagerotate()可能会更改图像的尺寸.一个例子是将矩形图像旋转180度以外的任何值.画布将展开以适应整个图像,填充颜色为"0"或黑色的空白区域.
如何在不将图像写入文件的情况下获得旋转后的新尺寸?(getimagesize()需要一个文件名,似乎不支持资源引用)