gpt4 book ai didi

php - 调整 base64 图像大小

转载 作者:IT老高 更新时间:2023-10-28 23:07:35 28 4
gpt4 key购买 nike

我有多个图像 - 保存为 Base64 字符串,现在我想调整这些图像的大小以获取它们的缩略图...

最好使用 Javascript (Node-Server) 来调整它们的大小,但也可以使用 php 来调整它们的大小。

提前致谢

最佳答案

我同意 the method from Jon Hanna :解析 Base64code,然后在重新采样之前将其加载到GD Image。然而,要将它作为数据取回,它并不像我那么容易。在 GAE 中的 php 上,它需要 enable output buffering通过在 php.ini 文件中设置 output_buffering = "On"

这里我详细解释一下步骤。

本文档作为引用使用 Base64code 的解析创建图像 Resource:http://php.net/manual/en/function.imagecreatefromstring.php

// Create image resource from Base64code
$data64 = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$image = imagecreatefromstring(base64_decode($data64));

这是一个图片资源,可以直接放到Resample函数中:http://php.net/manual/en/function.imagecopyresampled.php

// Resample
$image_p = imagecreatetruecolor($new_w, $new_h);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_w, $new_h, $org_w, $org_h);

结果也是一个图像资源。要将其作为数据获取,我们需要缓冲
how to create a base64encoded string from image resource

// Buffering
ob_start();
imagepng($image_p);
$data = ob_get_contents();
ob_end_clean();

使用下面的文档,我在 my project 上设置了 GCS 存储桶作为一个网站,我可以直接存储和显示它: https://cloud.google.com/storage/docs/website-configuration#tips

//Store & Display
$context = stream_context_create([
'gs' =>[
'acl'=> 'public-read',
'Content-Type' => 'image/jpeg',
'enable_cache' => true,
'enable_optimistic_cache' => true,
'read_cache_expiry_seconds' => 300,
]
]);
file_put_contents("gs://mybucket/resample/image.jpeg", $data, false, $context);
header("Location: http://mybucket/resample/image.jpeg");

关于php - 调整 base64 图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12232250/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com