【问题标题】:resize small images without pixelation in php在php中调整没有像素化的小图像大小
【发布时间】:2015-02-27 20:40:09
【问题描述】:

我正在开发一个 PHP 项目,我需要在存储图像之前调整图像大小,我正在使用这个工具“Oberto/php-image-magician”[https://github.com/Oberto/php-image-magician]

问题是,将小图像调整到更高尺寸会导致非常糟糕的像素化,所以我想通过在图像周围添加一些虚拟黑色区域(如 facebook)来调整图像大小,而不是通过默认的调整大小算法,是否有任何有用的插件还是天真的算法?

示例 图片来源: http://www.mediafire.com/convkey/c81e/1eheaa31t8zg0c7zg.jpg?size_id=3

“Oberto/php-image-magician”的作用: http://www.mediafire.com/convkey/c361/jsgc56ji2mw7414zg.jpg?size_id=4

我想要什么: http://www.mediafire.com/convkey/988e/8dd31zcvdqzjoc7zg.jpg?size_id=4

提前致谢

【问题讨论】:

  • 如果您只是想添加一个大的黑框,那么您不需要调整大小。只需创建一个 500x500 像素的黑色图片并将您的小图片覆盖在上面。
  • 感谢您的评论,但并非在所有情况下都如此,例如您有 200X200 的图像,目标尺寸为 300X100
  • 是的,如果您在 PHP 中根据您将放置在其上的图像动态地创建黑色图像,它会。我从来没有说过要在油漆中创造它。您需要计算尺寸并动态创建黑色图像。
  • 好的,我有那个 200X200 的图像,我将动态创建一个尺寸为 300X100 的黑色图像(确实,必须将结果设为 300X100)如何将第一个图像叠加在第二个图像上没有裁剪它的某些部分
  • 我找到了一个基于此的解决方案 [评论了答案],但最后,我将使用用油漆创建的静态图像 :P :D,感谢您的帮助

标签: php image-processing resize


【解决方案1】:

http://php.net/manual/en/function.imagecopymerge.php

正如 Monkey Zeus 所指出的,只需创建一个背景图像,然后覆盖您的源图像。

【讨论】:

  • 这不是我要找的,目标目标尺寸是静态的(它永远不会改变,总是 400X300,如果我有 500X200 或 300X500 的图像怎么办[即某些尺寸高于目标是什么])
  • 我根据你的 cmets 找到了一个解决方案 --> 检查图像的 w 和 h 是否都小于 500X200:使用你的解决方案 --> 否则,如果图像的 w 和 h 都是高于 500X200:这很酷,调整大小后不会出现像素化:D --> 如果任何尺寸更高:调整超出尺寸 [保持纵横比],然后使用您的解决方案
猜你喜欢
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 2014-08-07
  • 1970-01-01
相关资源
最近更新 更多