创建图像而不将其存储为本地文件

2023-12-25

这是我的情况 - 我想从用户上传的图像创建一个调整大小的 jpeg 图像,然后将其发送到 S3 进行存储,但我希望避免将调整大小的 jpeg 写入磁盘,然后为 S3 请求重新加载它。

有没有办法完全在内存中完成此操作,并将图像数据 JPEG 格式保存在变量中?


大多数使用 PHP 的人都会选择其中之一图像魔术师 http://www.php.net/manual/en/book.imagick.php or Gd2 http://www.php.net/manual/en/ref.image.php

我从未使用过 Imagemagick; Gd2方法:

<?php

// assuming your uploaded file was 'userFileName'

if ( ! is_uploaded_file(validateFilePath($_FILES[$userFileName]['tmp_name'])) ) {
    trigger_error('not an uploaded file', E_USER_ERROR);
}
$srcImage = imagecreatefromjpeg( $_FILES[$userFileName]['tmp_name'] );

// Resize your image (copy from srcImage to dstImage)
imagecopyresampled($dstImage, $srcImage, 0, 0, 0, 0, RESIZED_IMAGE_WIDTH, RESIZED_IMAGE_HEIGHT, imagesx($srcImage), imagesy($srcImage));

// Storing your resized image in a variable
ob_start(); // start a new output buffer
  imagejpeg( $dstImage, NULL, JPEG_QUALITY);
  $resizedJpegData = ob_get_contents();
ob_end_clean(); // stop this output buffer

// free up unused memmory (if images are expected to be large)
unset($srcImage);
unset($dstImage);

// your resized jpeg data is now in $resizedJpegData
// Use your Undesigned method calls to store the data.

// (Many people want to send it as a Hex stream to the DB:)
$dbHandle->storeResizedImage( $resizedJpegData );
?>

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建图像而不将其存储为本地文件 的相关文章

  • 加载位图图像至特定尺寸

    我正在尝试使用 allegro 将位图加载到特定大小 al crate bitmap x y 创建特定大小的位图 al load bitmap filename 加载我需要的图像 但为其原始大小 我需要将位图加载到我设置的大小 有任何想法吗
  • 使用 phpdocx 下载损坏的 .docx

    我有一个项目 我们使用 phpdocx pro 在模板中生成 docx 文件 我可以很容易地将数据输入到模板中 但是当下载文件并在 MS Word 2010 中打开时 程序报告无法打开文件 因为内容存在问题 详细信息是 文件已损坏 并且无法
  • 使用base64编码图像的优点和缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在考虑为我正在开发的网站使用 Base64 编码图像来优化加载时间 不管怎样 在开始之前 我想知道 这样做的优点和缺点是什么 目前 我没有看
  • 无法在jspdf中加载多个图像

    我正在尝试加载动态生成的多个图像 我想将这些图像转换为 PDF 格式 HTML 代码如下
  • 这个巨大的正则表达式是如何工作的?

    我最近在我的一个目录中的一个名为的文件中找到了下面的代码doc php 文件功能或链接到文件管理器 做得非常好 基本上 它列出了当前目录中的所有文件 并且允许您更改目录 它可以访问我的所有文件 添加 重命名 信息 删除 我不记得安装过它 我
  • OpenCV:如何从网络摄像头获取原始 YUY2 图像?

    你知道如何获得吗raw YUY2来自网络摄像头的图像 使用 OpenCV DirectShow 无 VFW http opencv willowgarage com wiki CameraCapture http opencv willow
  • php基于onclick函数输入日期类型

    用户选择日期 月份和年份 然后按一个按钮 根据他选择的日期向他显示数据库的值 不知道代码问题出在哪里
  • 如何从脚本中创建新的 Joomla 用户帐户?

    我们正在为 Joomla 创建一个 XML API 允许合作伙伴网站在我们的网站上为其用户创建新帐户 我们已经创建了一个独立的 PHP 脚本来处理和验证 API 请求 但现在我们需要实际创建新帐户 我们最初只想进行 CURL 调用来提交注册
  • PHP 的脚手架 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 PHP 中有什么东西可以像 Rails 一样创建基本的脚手架吗 编辑 我需要一些东西来快速原型化 一些框架比如Symfony http www sym
  • 纯基于网络的版本控制系统

    我的托管服务当前不允许在其服务器上运行 允许 svn git cvs 我真的希望能够将我的开发计算机上的当前源代码与我的生产服务器 同步 我正在寻找一个纯php python ruby版本控制系统 不只是一个client对于版本控制系统 不
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • Laravel/00webhost 错误 404。在此服务器上找不到请求的 URL

    1 将我的文件上传到 000webhost 我将公用文件夹中的所有文件放置到公共 html然后我创建了一个名为laravel我在那里上传了所有其他文件 这是我的目录结构 laravel app 引导程序 config 公共 html 索引
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • PHP-docker容器中的环境变量

    我想在我的 docker 容器中显示一个环境变量 PHP 脚本如下所示 我使用 OpenShift 来启动容器 PHP 容器显示 env is 现在我更改容器的 dc 配置 oc env dc envar USER Pieter deplo
  • json_encode 返回 NULL?

    由于某种原因 项目 描述 返回NULL使用以下代码 这是我的数据库的架构 CREATE TABLE staff id int 11 NOT NULL AUTO INCREMENT name longtext COLL
  • 付款成功后保存到数据库(paypal)

    我试图找出在客户使用 paypal 支付商品费用后将数据 之前以表单提交 保存到数据库的最佳方法 沿着这个过程的一些事情 1 在实际网站上填写表格 gt 2 登录 Paypal gt 3 立即付款 PayPal gt 4 数据已插入数据库
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • 使(文本到图像)图像具有一定的宽度但无限的长度?

    我有下面的代码 可以用大量文本生成图像 我希望该图像的宽度为 700 像素 我还希望它保留字符串所具有的段落结构 该字符串来自 MySQL 数据库 我怎样才能实现这一点 font 2 width imagefontwidth font st
  • 使用 PHP 中的 GD 库在图像上绘图

    我创建了一个代码来生成随机图案图像 它创建一个具有给定宽度和高度的图像 并用 40x40 像素的小矩形填充它 这是我的代码
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发

随机推荐

  • 软件开发中的测试人员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我的公司 我们开发一种软 件产品 到目前为止 我们还没有任何测试人员 所以基本上开发人员就是测试人员 当然还有客户和用户 不好 我们的团队现在
  • lsnrctl start rane 当我触发此命令时出现此错误

    oracle myserver lsnrctl start rane LSNRCTL for Linux Version 11 2 0 1 0 Production on 27 SEP 2016 23 04 58 Copyright c 1
  • 错误:无法解析“C:\projects\Project-CMS\Project.Web\src”中的“./app/app.module.ngfactory”

    当我为 Angular 5 应用程序创建构建时 出现以下错误 当我创建构建时它工作正常 ng build 当我创建 buildproductttion 时它显示错误 ng build prod 我没有在应用程序中的任何地方使用 ngfact
  • 关闭模态视图控制器时“[CALayer release]:消息发送到已释放的实例”

    这几天我一直在纠结这个问题 找不到解决办法 所以请教一下 我有两个 UIViewController NewPostUIViewController 和 SettingsUIViewController 在第二个中我有一个字段 id
  • 如何访问数据网格模板列文本框文本 WPF C#

    我需要访问 a 中的文本DataGrid的模板列来自代码后面 但我不知道如何 我需要将文本更改为我在上传递给它的任何字符串SelectionChanged事件 有人可以告诉我如何实现这一目标吗 我发现了一个类似的问题here https s
  • 如果存在则更新,否则插入一个查询中[重复]

    这个问题在这里已经有答案了 我有这样的简单表 ID int KEY varchar VALUE int 1 asdf 100 2 fdsa 321 3 ecda 211 我想更新行KEY some
  • 从 SPSS 中的所有变量名称中去除后缀

    我有一个数据集 其中每个变量名称都有后缀 1 这样做是为了指示第一次采访时间点 我想从所有变量中删除这个后缀 但变量有数百个 所以我正在寻找一种方法来完成此操作 而无需数百次使用 RENAME 语句 我找到的最接近相关信息来自下面的链接 用
  • MinGW 中的静态链接库

    假设我有三个 C 源文件 前两个是 LIB lib a 第三个是使用它们的应用程序 第一个是 re c int re int i return i 第二个是 test c int re int Depends on re c int tes
  • 使用相同端口(80)运行多个 java jetty 实例

    例如 我有一个主要临时域 www product com 对于每个客户端 我需要将单独的子域映射到具有相同端口 80 但具有不同实例名称 不同 wars文件 的同一服务器 www client1 product com www client
  • 混淆的效果如何?

    另一个问题 即最佳 NET 混淆工具 策略 https stackoverflow com questions 2525 best net obfuscation tools strategy 询问混淆是否容易使用工具实现 但我的问题是 混
  • mybatis动态sql里面注解

    我使用的是mybatis 3 我正在使用 select 注释在映射器接口内编写选择查询 Example Select select from EMPLOYEE where ID gt 55 public List
  • 为什么使用 zone() 时 momentjs isDST() 返回错误的时间

    我正在尝试检查 isDST 如果夏令时处于活动状态 则返回 true 或 false 如果我使用当前日期时间 它工作正常 例如 var isdst moment isDST 对于我的时区返回 true 但是 我想要做的是首先设置时区偏移量
  • 如何对元组列表进行分组?

    Note 我当然知道如何在显式 for 循环中做到这一点 但我正在寻找一个更具可读性的解决方案 如果可能的话 我想通过使用一些内置功能来解决这个问题 最好的情况是这样的 result groupby logic 假设有以下列表 import
  • 您是否应该更喜欢重载而不是函数模板的专门化?

    我的一本教科书指出 您可以为标准库函数提供自己的实现 例如swap x y 通过模板专门化或函数重载 这对于任何可以从赋值交换以外的东西中受益的类型都很有用 例如 STL 容器 我知道 它已经编写了交换 我的问题如下 更好的是 模板专业化为
  • 向正在等待 TCP 的线程发送指令?

    我试图理解 TCP 中的多线程 所以我正在编写一个基本的 telnet 文本 路由器 using ReadLine 每个使用 TCP 侦听器的线程将等待来自 telnet 客户端的输入 然后根据发送的文本进行响应 我将其与多个线程和多个 t
  • 尝试让 CUDA 7.5 与 GCC 5.x 一起工作

    因此 如果您在系统 GCC 版本为 5 及更高版本时尝试使用 nvcc 则会收到 版本不受支持 错误 但是 我听说人们报告说他们刚刚对此进行了评论 并且 CUDA 7 5 与 GCC 5 x 一起 为他们工作 然而 当我做同样的事情时 支票
  • 如何改变android中数组元素的颜色? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我只是想知道 我们可以更改特定数组索引的颜色吗 我有一个以下数组 String all 1 2 3 4 5 6 7 8 9 10 所以 我想
  • 使用大的静态变量是一个坏主意吗?

    我使用 ASP NET MVC 4 我想加载大量数据并使其在我的所有类中都可以访问 这是我的代码的简约示例 public class MyController Controller public static List
  • 数据库中的重复条目

    我有一个巨大的产品表 但有很多重复的条目 该表有超过 10000 个条目 我想删除其中的重复条目 而不需要手动查找并删除它 如果您能为我提供解决方案 请告诉我 你可以使用SELECT DISTINCT INTO TempTable 删除原始
  • 创建图像而不将其存储为本地文件

    这是我的情况 我想从用户上传的图像创建一个调整大小的 jpeg 图像 然后将其发送到 S3 进行存储 但我希望避免将调整大小的 jpeg 写入磁盘 然后为 S3 请求重新加载它 有没有办法完全在内存中完成此操作 并将图像数据 JPEG 格式