php - 直接从 Rackspace 云文件 'object' 调整图像大小而无需下载?

标签 php rackspace-cloud

我已将图像移至 Rackspace Cloud Files 并正在使用他们的 PHP API。我正在尝试执行以下操作:

  1. 从我的“原始”容器中获取图像
  2. 调整大小、锐化等。
  3. 将调整大小的图像保存到“thumbs”容器

我的问题是#2。我希望调整大小而不必先将原始文件复制到我的服务器(因为图像很大并且我想动态调整大小),但不知道如何调整。这是我到目前为止所拥有的(不多):

$container = $conn->get_container("originals"); 
$obj = $container->get_object("example.jpg"); 
$img = $obj->read();

部分问题是我不完全理解 read() 函数返回的内容。我知道 $img 包含对象的“数据”(我能够将其打印为乱码),但它既不是文件,也不是网址,也不是图像资源,所以我不知道如何处理它。是否有可能以某种方式将 $img 转换为图像资源?我尝试了 imagecreatefromjpeg($img) 但没有成功。

谢谢!

最佳答案

首先,如果不将图像加载到内存中,则无法调整图像大小。除非远程服务器提供一些“为我调整图像大小,这是参数”API,否则您必须在脚本中加载图像才能对其进行操作。因此,您必须将文件从 CloudFiles 容器复制到您的服务器,对其进行操作,然后将其发送回存储中。

$obj->read()收到的数据是图像数据。这就是文件。它没有文件名,也没有保存在硬盘上,但它是整个文件。要将其加载到 gd 中进行操作,您可以使用 imagecreatefromstring 。这类似于使用 imagecreatefrompng,只是 imagecreatefrompng 想要自己从文件系统读取文件,而 imagecreatefromstring 仅接受已加载到内存中的数据。

关于php - 直接从 Rackspace 云文件 'object' 调整图像大小而无需下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7313607/

相关文章:

php - 表单类型映射错误 symfony2

php - 使用 Ghost 脚本将 JPG 转换为 TIFF

php - Mongo/PHP 包装器错误 - 我如何让包装器工作?

amazon-web-services - 与 Rackspace 服务器一起使用的理想 AWS 区域是什么?

PHP上传到rackspace CDN

php - mysql_fetch_row : how does it know which row?

php - 使用 AJAX 时未正确转义引号

ruby - 如何使用 Fog 为云文件设置 Cache-Control header

amazon-web-services - 亚马逊网络服务 (AWS) 或 Rackspace 云服务器之间的比较?

load - 单个 EC2 弹性负载均衡器可以服务多少个节点