标签: php-gd

Ajax 并返回由 PHP GD 创建的图像

我有一个 PHP 脚本,可以使用 PHP GD 生成图像。生成图像后,将其保存,并在 Ajax 调用时发送以下输出:

imagejpeg($img_data, 'filename.jpg');
echo '<img src="/filename.jpg.jpg">';
Run Code Online (Sandbox Code Playgroud)

之后,图像显示在页面上,一切都很好。但是,我不想每次都创建一个图像。有什么方法可以让我仅通过 Ajax$raw_data字符串返回并显示图像吗?我尝试这样:

echo $img_data;
Run Code Online (Sandbox Code Playgroud)

但运气不好,返回的只是一些?。

这是我的 jQuery Ajax 代码:

$.ajax({
  type: 'POST',
  data: {
    action: 'update_image',
    //some instructions for creating the image
  },
  url: 'script.php',
  success: function(msg) {
    $('#somediv').append(msg);
  }
});
Run Code Online (Sandbox Code Playgroud)

php ajax jquery php-gd

2
推荐指数
1
解决办法
7020
查看次数

php-gd已安装但在centos 7(php 7.3版本)中无法运行

我正在尝试安装 Moodle,但它显示 php-gd 扩展丢失/应该启用。然而,gd 已经安装并且是最新的,当我命令时,php -v我收到以下错误,如下所示。

PHP Warning:  PHP Startup: Unable to load dynamic library 'gd.so' (tried: /usr/lib64/php/modules/gd.so (/lib64/libraqm.so.0: undefined symbol: hb_ft_font_set_load_flags), /usr/lib64/php/modules/gd.so.so (/usr/lib64/php/modules/gd.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.3.17 (cli) (built: Apr 14 2020 08:29:22) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.17, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.17, Copyright (c) 1999-2018, by Zend Technologies
Run Code Online (Sandbox Code Playgroud)

我做了很多编辑,但找不到单一的解决方案。请帮忙

gd php-gd

2
推荐指数
1
解决办法
6264
查看次数

PNG 文件不保持透明度?

我将在整个过程中使用这些变量:

$ROOTDIR = $_SERVER["DOCUMENT_ROOT"];
$ROOTFILE = "http://www.scottandjessiecooper.com/webtutorials/images/smiley.png";
$NEWFILE = "$ROOTDIR/images/tmp/new_smiley.png";
Run Code Online (Sandbox Code Playgroud)

当我使用此功能时,透明度没有问题

function save_image($root, $saveto){
    copy($root, $saveto);
}
save_image( $ROOTFILE, $NEWFILE ); // root can be file or url
Run Code Online (Sandbox Code Playgroud)

但是我需要使用IMAGE_RESOURCE所以我可以在需要时操作ROOTFILE

所以我尝试了这个:

if ( file_exists( $NEWFILE ) ) unlink ($NEWFILE);
$image = imagecreatefrompng( $ROOTFILE );
imagepng( $image, $NEWFILE );
imagedestroy( $image );
Run Code Online (Sandbox Code Playgroud)

现在当我使用这个时:

<img src="<?=$NEWFILE?>" />
Run Code Online (Sandbox Code Playgroud)

我失去了透明度。背景变黑了!

所以我尝试输出图像以确保它不是导致问题的保存

if ( file_exists( $NEWFILE ) ) unlink ($NEWFILE);
$image = imagecreatefrompng( $ROOTFILE );
header('Content-Type: image/png'); …
Run Code Online (Sandbox Code Playgroud)

php php-gd

1
推荐指数
2
解决办法
1万
查看次数

PHP - 压缩图像以满足文件大小限制

我必须上传满足最大宽度尺寸和最大文件大小的图像文件。

我有检查宽度大小并调整图像大小以满足最大图像宽度的代码。

但是,当我保存文件时,我可以设置质量

imagejpeg( $imgObject , 'resized/50.jpg' , 50 ); //save image and set quality
Run Code Online (Sandbox Code Playgroud)

我想做的是避免设置标准质量,因为提交的图像质量差异很大,并且一开始可能很低。

图像的质量应设置得尽可能高,且不超过最大文件大小限制。

我唯一的解决方案是以不同质量保存图像的多个版本,检查每个文件大小并选择最好的一个。这可行,但速度非常慢并且过程密集。

关于如何做得更好有什么建议吗?

谢谢

php compression gd image php-gd

1
推荐指数
1
解决办法
3484
查看次数

试图安装php gd扩展php55-与php-common-5.3的常见冲突

我正在尝试使用此命令在php5.5 amazon ec2服务器上安装php gd扩展

yum install php-gd
Run Code Online (Sandbox Code Playgroud)

日志:

Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package php-gd.x86_64 0:5.3.28-1.5.amzn1 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.28-1.5.amzn1 for package: php-gd-5.3.28-1.5.amzn1.x86_64
--> Processing Dependency: libXpm.so.4()(64bit) for package: php-gd-5.3.28-1.5.amzn1.x86_64
--> Processing Dependency: libt1.so.5()(64bit) for package: php-gd-5.3.28-1.5.amzn1.x86_64
--> Running transaction check
---> Package libXpm.x86_64 0:3.5.10-2.9.amzn1 will be installed
---> Package php-common.x86_64 0:5.3.28-1.5.amzn1 will be installed
---> Package t1lib.x86_64 0:5.1.2-6.5.amzn1 will be installed
--> Processing Conflict: php55-common-5.5.14-1.75.amzn1.x86_64 conflicts php-common …
Run Code Online (Sandbox Code Playgroud)

php linux amazon-ec2 php-gd

1
推荐指数
1
解决办法
7982
查看次数

PHP中的条形码生成和解码

我需要开发一个PHP应用程序,它将生成条形码,并且还能够读取这些条形码.

由于我的应用程序将是一个基于Web的应用程序,而底层技术是PHP,它是一种服务器端脚本语言,我觉得条形码生成不会成为问题,但扫描和读取这些条形码可能是一个挑战.

如果可以在PHP应用程序中读取条形码,请指导我.

php barcode barcode-scanner php-gd barcode-printing

0
推荐指数
1
解决办法
8220
查看次数

php 图像中的文本居中

我不知道如何使用 imagettftext 将文本放在 php 创建的图像中。这是我的代码:

header('Content-Type: image/png');
$im = imagecreatetruecolor(260, 180);
$background = imagecolorallocate($im, 0, 0, 255);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 60, 153, 181);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 200, $white);
$text = $_GET['tname'];
$font = 'OpenSans-Semibold.ttf';
imagettftext($im, 20, 0, $x+1, $y+1, $grey, $font, $text);
imagettftext($im, 20, 0, $x, $y, $black, $font, $text);
imagepng($im);
imagedestroy($im);
Run Code Online (Sandbox Code Playgroud)

php image php-gd

0
推荐指数
1
解决办法
3531
查看次数