gpt4 book ai didi

php - GD/Imagick 不保存我的图像

转载 作者:行者123 更新时间:2023-11-30 04:05:48 25 4
gpt4 key购买 nike

我想从 android 发送图像并通过 php 代码将其保存在我的服务器中。因为我需要保护我的服务器我需要重新处理图像所以我必须使用 GD 或 Imagick。图像以 base64 编码发送。在 php 文件中解码,如果我使用:

$img=base64_decode($img);
$file = fopen('test.jpg', 'wb');
fwrite($file, $img);
fclose($file);

图像保存在服务器中。如果我使用 Imagick 或 GD,我的图像不会被保存并且 php 文件不会返回任何内容,即使我在它之后插入一个 echo。有什么帮助吗?在 GD 中我使用:

$img=base64_decode($img);
$imageinfo = getimagesize($img);
if($imageinfo['mime'] == 'image/gif'{
$img = @imagecreatefromjpeg($img);
imagejpeg($img, ""testt.jpg", 80);
}

在 Imagick 中:

$img=base64_decode($img);
$img = imagick($img); //neither if I use a path of an image saved in my server
//works
$mime = mime_content_type($img);
switch ($mime):
case 'image/jpeg':
$ext = '.jpg';
break;
endswitch;

$img->stripImage();
$img->writeImage(""testt".$ext);
$img->clear();
$img->destroy();

最佳答案

imagick 只适用于文件,不幸的是你不能给它一个句柄,所以:

$img=base64_decode($img);
$filename = tempnam(sys_get_temp_dir(), 'tempimage_');
$file = fopen($filename, 'wb');
fwrite($file, $img);
fclose($file);

$img = imagick($filename);
$mime = mime_content_type($img);
switch ($mime):
case 'image/jpeg':
$ext = '.jpg';
break;
endswitch;

$img->stripImage();
$img->writeImage("testt".$ext);
$img->clear();
$img->destroy();

理论上,这应该可行。

关于php - GD/Imagick 不保存我的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11702801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com