Imagecreatefromjpeg 调整大小后返回黑色图像

2024-03-29

我有一个脚本来调整上传图像的大小,但是当我使用它时,它只返回一个黑色方块。所有的错误信息都指向这个函数:

function resizeImage($image,$width,$height,$scale) {
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    $source = imagecreatefromjpeg($image);
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
    imagejpeg($newImage,$image,90);
    chmod($image, 0777);
    return $image;
}

我的错误日志:

PHP Warning:  imagecreatefromjpeg() [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: gd-jpeg: JPEG library reports unrecoverable error
PHP Warning:  imagecreatefromjpeg() [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: 'img/[hidden].jpg' is not a valid JPEG file
PHP Warning:  imagecopyresampled(): supplied argument is not a valid Image resource

根据 Marc B 的回答,您可能可以检查该文件是否是 JPG 文件。 (JPEG、JPG、jpg、jpeg 扩展名)。

它可能是这样的:

$file = explode(".", $_POST['file']);
$file_ext = $file[count($file)]; // Get the last thing in the array - in this way the filename can containg dots (.)
$allowed_ext = array('jpg', 'JPG', 'jpeg', 'jpg');

if( in_array($file_ext, $allowed_ext )
{
    // The code for creating the image here.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Imagecreatefromjpeg 调整大小后返回黑色图像 的相关文章

随机推荐

  • Log4j:如何配置最简单的文件日志记录?

    我的故事 我想做一个像最简单的 log4j 记录器一样简单的东西 它将行记录到文件中 我找到了几个具有某些功能的示例 但不是一个真正有效的基本 通用的示例 也没有一个解释每一行如何工作的示例 问题 有人可以提供一份吗 先决条件 我已经知道该
  • 自定义 Seaborn 调色板的颜色不一致[重复]

    这个问题在这里已经有答案了 我正在尝试使用自定义调色板来应用不同的值hue类别在seaborn 但输出颜色与我的输入不匹配 举个例子 import random random seed 1 import matplotlib pyplot
  • 如果将无效值 static_cast 到枚举类会发生什么?

    考虑这个 C 代码 enum class Color char red 0x1 yellow 0x2 char data ReadFile Color color static cast
  • 创建测验表单 symfony

    我正在尝试在 symfony 中进行测验 但我在渲染方面遇到了困难 这是我的数据库 一个序列 测验 可以有许多问题 这些问题有多个答案 用户可以选择一个答案 但它的构建方式 我不知道如何创建一个简单的表单 因此当用户选择答案时 它会更新该用
  • 使用 fread、data.table 包读取链 (+, -) 列

    我正在尝试使用 fread 将基因组比对读入data table在 R 中 这是对齐文件的快照 USI EAS28 1 100 1786 674 0 1 1 maternal 68326824 CTCAATTATACTGAAAGAAACAC
  • 如何使用 Python/Tkinter 制作菜单栏剪切/复制/粘贴

    我想制作可以剪切 复制 粘贴所选文本的菜单项 在菜单栏中 而不是在右键单击弹出窗口中 等效的键盘命令已经可以工作 而无需我做任何事情来启用它们 例如 我可以在输入框中输入文本 使用 Control X 剪切它 然后使用 Control C
  • 方法executeScript(selenium web driver)无法定义全局变量以供以后使用?

    我正在使用该方法executeScript在 selenium web 驱动程序中 我发现一个问题 js executeScript var b 1 js executeScript alert b 运行上面的代码后 我想得到一个警报窗口
  • 从 JSON 中的不同嵌套级别提取对象名称

    我一直在尝试从之前的问题中找到解决方案来运行here https stackoverflow com questions 18830955 get the elements from nested json with python usin
  • Android Gradle 构建中出现意外的节点 Android 打包

    我正在尝试让我的项目使用gradle 问题是 每次我尝试构建时 都会收到以下错误 Error Internal error java lang AssertionError Unexpected node Android Packaging
  • 有了websockets,AJAX还有用武之地吗?

    我目前正在使用 Node js 构建一个实时应用程序 我使用 socket io 来支持实时交互 但已加载 jQuery 因此我可以使用 AJAX 我最初使用 socket io 进行服务器和客户端之间的所有通信 我开始认为 AJAX 可能
  • 如何更改 Azure AD 上的用户主体名称

    我正在尝试使用在 Microsoft 文档中找到的 PowerShell 命令 Set MsolUserPrincipalName 更改 Azure AD 用户的用户主体名称here https learn microsoft com en
  • 如何编写将行号输出为列的查询?

    如何编写将行号输出为列的查询 这是 iSeries 上的 DB2 SQL 例如 如果我有 表披头士乐队 John Paul George Ringo 我想写一个声明 如果可能的话 不写过程或视图 这给了我 1 John 2 Paul 3 G
  • 如何从代码隐藏在新窗口或选项卡中打开页面

    所以我有一个 Web 应用程序 我可以从下拉列表中选择一个值 当选择此值时 我想在新窗口中加载另一个页面 我试过这个 ScriptManager RegisterStartupScript Page typeof Page OpenWind
  • 当我访问数组的元素时,硬件级别会发生什么?

    int arr 69 1 12 10 20 113 当我这样做时会发生什么 int x a 3 我一直有这样的印象a 3 意思是这样的 从内存地址开始arr 向前走 3 个内存地址 获取该内存地址表示的整数 但后来我对哈希表的工作原理感到困
  • 从视图模型将焦点设置在 WPF 中的 TextBox 上

    我有一个TextBox and a Button在我看来 现在 我正在检查按钮单击时的条件 如果条件结果为假 则向用户显示消息 然后我必须将光标设置到TextBox控制 if companyref null var cs new Lippe
  • 如何使用 Spring Boot 加载外部配置?

    我目前正在学习如何使用 Spring Boot 到目前为止我从未使用过像Spring这样的框架 而是直接使用文件 FileInputStream等 情况如下 我有一些动态配置值 例如 OAuth 令牌 我想在我的应用程序中使用它们 但我不知
  • Android 中如何使用 MVP 模式控制 ListView

    我目前正在使用 MVP 模式开发 Android 应用程序 当我尝试开发 Activity 时 我应该使用 ListView 所以我对 ListView 使用适配器 但我听说 Adapter 与 MVP 模式上的 Presenter 类似
  • 我们可以用jquery调用智能手机原生的分享功能吗?

    我们可以使用手机 android Iphone 本机共享功能来共享应用程序中的不同内容 是否也可以在所有智能手机中使用 JavaScript 通过浏览器调用此共享功能 这样 在浏览器中的某些事件中 我们可以加载共享小部件 Thanks 是的
  • 使用 shell 删除最旧的文件

    我有一个文件夹 var backup 其中 cronjob 保存数据库 文件系统的备份 它包含一个latest gz zip和许多旧的转储 它们的名称是timestamp gz zip 该文件夹变得越来越大 我想创建一个执行以下操作的 ba
  • Imagecreatefromjpeg 调整大小后返回黑色图像

    我有一个脚本来调整上传图像的大小 但是当我使用它时 它只返回一个黑色方块 所有的错误信息都指向这个函数 function resizeImage image width height scale newImageWidth ceil wid