【问题标题】:PHP::Imagick Creating a Temp FIle from A Composite Image, for displaying through <img> TagPHP::Imagick 从合成图像创建临时文件,用于通过 <img> 标签显示
【发布时间】:2020-04-24 18:17:10
【问题描述】:

是否可以创建一个临时文件服务器端来查看图像?

我有一些图像,它们是从服务器显示的,但我想让它们加水印...发现了 Imagick 类,使用了复合...当作为标题发送时可以查看它,但我需要它以某种方式对标签可见。

我不想使用“写入图像”并从合成图像创建新图像。我正在尝试将它用作客户端的东西(我对 JS 不熟悉......是的,我会研究它,但在那之前需要一个替代方案)。

我知道的另一种选择是我应该在上传图片时控制它,但我已经上传了很多,所以...... 任何帮助表示赞赏!

【问题讨论】:

    标签: php imagick


    【解决方案1】:

    您是否尝试过使用生成图像的函数作为&lt;img /&gt; 标记的src 属性?

    我不知道你的代码到底是怎样的,但我认为最终结果可能是这样的:

    <img src="data:image/jpeg;base64,<?php echo base64_encode($image_headers); ?>">
    

    您基本上将图像src 中的标头输出为base64 编码字符串。

    你应该记住的是,你应该将image/jpeg类型调整为你的图像的相应类型。

    例如:

    • 对于 JPG、JPEG 文件,它将是 image/jpeg
    • 对于 PNG 文件,它将是 image/png
    • 对于 WEBP 文件,它将是 image/webp

    当然编码后的字符串应该是对应格式的图片。

    【讨论】:

    • 感谢您的超级快速回复。我会试一试,让你知道它是否有效。另外,我也会分享代码。
    • 所以我用新代码更新了标签,但它仍然输出一堆乱码而不是图像
    • 你能用图像生成代码更新你的问题吗?最好是全功能。我这里有点瞎:)
    • 我实际上明白了,一开始我不明白你的意思,但我四处游荡并明白了。它现在完美无缺,除了一件事。如果我右键单击并在新选项卡中打开它,它会显示整个编码的 base64 结构......如果有其他方法可以重命名它,作为源图像......这是源代码stackoverflow.com/q/61419943/13168285
    • 据我所知,您无法执行此操作,因为整个图像都在 src 中。它不是生成的文件,它实际上是图像的原始代码。如果您需要能够使用文件名保存它,则必须将图像文件保存在您的服务器上并输出它。除此之外,我的回答对你有用吗?
    猜你喜欢
    • 2015-04-25
    • 2021-02-19
    • 2021-11-30
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多