php - JPEG 文件提前结束

标签 php codeigniter image-processing image-resizing plupload

在调整某些图像的大小时,我收到了 JPEG 文件错误的过早结束。有趣且奇怪的部分是,只有当我上传任何相机拍摄的图像(例如从移动设备)时,我才会收到此错误,而不是所有东西都很好用。我认为这可能是因为 plupload 中使用的块大小。所以,我上传了更大尺寸的图像到有点像 3mb 来测试。适用于相机拍摄图像以外的图像。因此,每当我上传相机照片时,都会出现此错误。

关于错误的进一步详细说明:php 函数 imagecreatefromjpeg 抛出错误“imgname.jpg 不是有效的 JPEG 文件”。

要调整图像大小,我使用 Codeigniter 的图像操作类。

最佳答案

根据你提供的情况,我只能给你我的扣除额。

相机图像通常非常大。我建议您尝试调整相机图像的大小,看看它是否有效。

你的PHP版本是什么?有一个与此相关的错误:https://bugs.php.net/bug.php?id=29878

另请检查您的 JPEG 文件是否为 RGB 格式。手册中的某处提到它无法为某些版本的 GD 库正确加载 CMYK。

您愿意使用其他类(class)吗?我用 this class调整图像大小并且多年来没有遇到任何问题。

调整图像大小非常简单:

<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToHeight(500);
   $image->save('picture2.jpg');
   $image->resizeToHeight(200);
   $image->save('picture3.jpg');
?>

如果所有建议都没有奏效,您可以尝试使用 ImageMagick .

关于php - JPEG 文件提前结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438813/

相关文章:

php - Codeigniter URL 冲突

php - Codeigniter:在for循环中设置上传文件名

javascript - 工具提示无法正常工作

java - 点游戏失败,无法正确识别和绘制图像周围的点

algorithm - 如何识别交通标志的形状?

php - 创建mysql数据库表的语法错误

javascript - Beaglebone Black Rev C Debian,从 html 运行 PHP 程序

php - MYSQL - 每条数据一列或合并为一列

java - 用 Java 修改并比较 2 个图像

php - laravel 中的分页