gpt4 book ai didi

PHP imagecopyresampled + 如何获得最好的结果

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:11 24 4
gpt4 key购买 nike

我有以下工作正常:

  1. 用户上传一张图片,然后使用 imagecopyresampled 和 imagejpeg 调整图片大小(保持比例),使其适合裁剪 DIV。

  2. 然后用户使用 JCrop 裁剪图像,然后使用 imagecopyresampled 和 imagejpeg 将调整大小后的上述图像裁剪成 5 种所需的裁剪尺寸。


我发现的问题是,从调整大小的图像中裁剪并没有利用通常更大、质量更好的原始图像。

所以我想显示适合 DIV 的图像,但要从原始图像中裁剪以获得最佳质量。

当我只是将裁剪更改为原始图像时,裁剪是图像的错误部分,因为尺寸不同。我认为这是显而易见的。不同大小的图像。


我如何才能显示适合 Jcrop DIV 的图像,但实际上会裁掉通常较大的原始图像?

我正在测试的想法:

  • 在 DIV 中显示原始图像(不是通过 php 调整大小,而是通过 CSS 调整大小)。我不确定这是否会有所不同。

  • 尝试使用一些基于数学的方程来获得正确的裁剪。不确定我目前将如何执行此操作。

想法会很棒...谢谢

最佳答案

如果您必须使用全尺寸图像服务器端,我个人会选择基于数学的解决方案。直接或通过 CSS 在浏览器中重新缩放在 IMO 中并不理想,并且浏览器之间差异很大。如果您使用基于数学的选项,您可以计算较小图像裁剪的坐标并将其放大以获得原始图像的正确部分。

附带说明,您可能会发现(取决于您允许上传的图像大小和图像类型)在 PHP 端复制和调整大小非常占用 CPU 和内存。例如,高分辨率的大约 1024 x 768 的 png 文件可能需要多达 60MB 到 80MB 的 RAM 来调整大小(由于对 png 文件进行压缩而对每个图像重新采样)并且无论使用哪个 PHP 图像处理模块( ImageMagick 等)您使用。没有完美的方法来处理从 PHP 服务器端上传的图像(除了在任务中投入大量内存和 CPU)。然而,有一些很好的 jQuery 解决方案可以在上传前在客户端调整大小(例如 Plupload 等),这意味着您只能在服务器端使用缩小尺寸的图像。还有一些很好的 JQuery 客户端裁剪脚本。无论哪种方式,PHP 和 jQuery 的组合都是最好的 IMO。

关于PHP imagecopyresampled + 如何获得最好的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520994/

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