imagecreatefromjpeg():gd-jpeg:JPEG 库报告不可恢复的错误 - Laravel
imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error - Laravel
我有以下 2 条路线 :-
Route::get('resize/avatar', function() {
$image = 'avatar.jpg';
$target_filename_here = 'thumbnail_'.$image;
$ffs = imagecreatefromjpeg($image);
$size = getimagesize($image);
$dst = imagecreatetruecolor(100,100);
$dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
$dn = imagepng($dst,$target_filename_here); // adjust format as needed
imagedestroy($ffs);
imagedestroy($dst);
if($dds) {
return Redirect::to('color/');
} else {
return 'Failed to load the Profile Picture';
}
});
Route::get('color/', function() {
if(file_exists('thumbnail_avatar.jpg')) {
$dest = imagecreatefrompng('transcript.png');
$fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
imagejpeg($dest,"test4.jpg",90);
imagedestroy($dest);
imagedestroy($fn);
return HTML::image('test4.jpg');
} else {
return Redirect::to('resize/avatar');
}
});
我收到标题错误,我正在尝试弄清楚,我在哪里创建问题,但找不到它。
我正在使用的框架是 "Laravel 4.2" ,但我很确定,它与框架无关,因为函数是纯粹的 php.
对于 TL;DR
我正在尝试创建个人资料图片的缩略图,而不是将其合并到另一张图片。在这样做的同时,我得到:- imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error:
我已经在 Whosebug 和 google 中搜索过类似我的错误,但我无法找到和调试。
更新:
谢谢
常见问题解答:-
内存限制?
==> 我有足够的内存。
在函数中使用“@”来隐藏错误?
==>没关系。我仍然面临这个问题。
您尝试过其他图像吗?
==> 是的,我已经尝试过其他图像,并且我成功地做到了,它只会造成 "generated thumbnail".
的问题
我的问题 请自己尝试,使用下面的脚本 non-laravel :-
function resizeImage() {
$image = 'avatar.jpg';
$target_filename_here = 'thumbnail_'.$image;
$ffs = imagecreatefromjpeg($image);
$size = getimagesize($image);
$dst = imagecreatetruecolor(100,100);
$dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
$dn = imagepng($dst,$target_filename_here); // adjust format as needed
imagedestroy($ffs);
imagedestroy($dst);
if($dds) {
color();
} else {
return 'Failed to load the Profile Picture';
}
}
function colorCheck() {
if(file_exists('thumbnail_avatar.jpg')) {
$dest = imagecreatefrompng('transcript.png');
$fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
imagejpeg($dest,"test4.jpg",90);
imagedestroy($dest);
imagedestroy($fn);
return HTML::image('test4.jpg');
} else {
resizeImage();
}
}
你可以看到错误。
谢谢
我知道我有点晚了,但我遇到了类似的问题,这让我抓狂。
回答您的问题“...我正在尝试弄清楚,我正在创建一个问题”...错误是在
处创建的
$ffs = imagecreatefromjpeg($image);
执行这行代码时出现此错误,上传图像 jpg 然后使用 PHP GD2 库
我按照下面 link 中的解决方案解决了我的问题。
我希望有人会觉得这有用并节省一些时间。感谢来自 anvilstudios 的 Nico
更新
对于那些无法访问 link 的人,这里是代码
$file_tempname = null;
if (is_uploaded_file($FILE['tmp_name'])) {
$file_tempname = $FILE['tmp_name'];
}
else{
exit('Wrong file type');
}
$file_dimensions = getimagesize($file_tempname);
$file_type = strtolower($file_dimensions['mime']);
if ($file_type=='image/jpeg'||$file_type=='image/pjpeg'){
if(imagecreatefromjpeg($file_tempname)){
$ffs = imagecreatefromjpeg($file_tempname);
return $ffs;
}
}
我找到的解决方案如下:
$file_dimensions = getimagesize($_SERVER['DOCUMENT_ROOT'] . $fileUrl);
$ImageType = strtolower($file_dimensions['mime']);
switch(strtolower($ImageType))
{
case 'image/png':
$img_r = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'] . $fileUrl);
break;
case 'image/jpeg':
$img_r = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'] . $fileUrl);
break;
default:
die('Unsupported File!'); //output error
}
我有以下 2 条路线 :-
Route::get('resize/avatar', function() {
$image = 'avatar.jpg';
$target_filename_here = 'thumbnail_'.$image;
$ffs = imagecreatefromjpeg($image);
$size = getimagesize($image);
$dst = imagecreatetruecolor(100,100);
$dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
$dn = imagepng($dst,$target_filename_here); // adjust format as needed
imagedestroy($ffs);
imagedestroy($dst);
if($dds) {
return Redirect::to('color/');
} else {
return 'Failed to load the Profile Picture';
}
});
Route::get('color/', function() {
if(file_exists('thumbnail_avatar.jpg')) {
$dest = imagecreatefrompng('transcript.png');
$fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
imagejpeg($dest,"test4.jpg",90);
imagedestroy($dest);
imagedestroy($fn);
return HTML::image('test4.jpg');
} else {
return Redirect::to('resize/avatar');
}
});
我收到标题错误,我正在尝试弄清楚,我在哪里创建问题,但找不到它。
我正在使用的框架是 "Laravel 4.2" ,但我很确定,它与框架无关,因为函数是纯粹的 php.
对于 TL;DR
我正在尝试创建个人资料图片的缩略图,而不是将其合并到另一张图片。在这样做的同时,我得到:- imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error:
我已经在 Whosebug 和 google 中搜索过类似我的错误,但我无法找到和调试。
更新:
谢谢
常见问题解答:-
内存限制? ==> 我有足够的内存。
在函数中使用“@”来隐藏错误? ==>没关系。我仍然面临这个问题。
您尝试过其他图像吗? ==> 是的,我已经尝试过其他图像,并且我成功地做到了,它只会造成 "generated thumbnail".
的问题
我的问题 请自己尝试,使用下面的脚本 non-laravel :-
function resizeImage() {
$image = 'avatar.jpg';
$target_filename_here = 'thumbnail_'.$image;
$ffs = imagecreatefromjpeg($image);
$size = getimagesize($image);
$dst = imagecreatetruecolor(100,100);
$dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
$dn = imagepng($dst,$target_filename_here); // adjust format as needed
imagedestroy($ffs);
imagedestroy($dst);
if($dds) {
color();
} else {
return 'Failed to load the Profile Picture';
}
}
function colorCheck() {
if(file_exists('thumbnail_avatar.jpg')) {
$dest = imagecreatefrompng('transcript.png');
$fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
imagejpeg($dest,"test4.jpg",90);
imagedestroy($dest);
imagedestroy($fn);
return HTML::image('test4.jpg');
} else {
resizeImage();
}
}
你可以看到错误。
谢谢
我知道我有点晚了,但我遇到了类似的问题,这让我抓狂。
回答您的问题“...我正在尝试弄清楚,我正在创建一个问题”...错误是在
处创建的$ffs = imagecreatefromjpeg($image);
执行这行代码时出现此错误,上传图像 jpg 然后使用 PHP GD2 库
我按照下面 link 中的解决方案解决了我的问题。
我希望有人会觉得这有用并节省一些时间。感谢来自 anvilstudios 的 Nico
更新 对于那些无法访问 link 的人,这里是代码
$file_tempname = null;
if (is_uploaded_file($FILE['tmp_name'])) {
$file_tempname = $FILE['tmp_name'];
}
else{
exit('Wrong file type');
}
$file_dimensions = getimagesize($file_tempname);
$file_type = strtolower($file_dimensions['mime']);
if ($file_type=='image/jpeg'||$file_type=='image/pjpeg'){
if(imagecreatefromjpeg($file_tempname)){
$ffs = imagecreatefromjpeg($file_tempname);
return $ffs;
}
}
我找到的解决方案如下:
$file_dimensions = getimagesize($_SERVER['DOCUMENT_ROOT'] . $fileUrl);
$ImageType = strtolower($file_dimensions['mime']);
switch(strtolower($ImageType))
{
case 'image/png':
$img_r = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'] . $fileUrl);
break;
case 'image/jpeg':
$img_r = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'] . $fileUrl);
break;
default:
die('Unsupported File!'); //output error
}