每次旋转后 PHP 图像旋转都会失去质量

标签 php image image-processing

我目前正在使用 GD 和一些 PHP 来旋转图像。每次旋转后,图像质量都会变差。有没有更好的方法来做到这一点或者这是预期的?

    $img = new ImageClass;
    list($original, $info) = $img->load($src);

    // Determine angle
    $angle = strtolower($angle);
    if( $angle == 'cw' || $angle == 'clockwise' ) $angle = 270;
    if( $angle == 'ccw' || $angle == 'counterclockwise' ) $angle = 90;

    $rgb = $img->hex2rgb($bg_color);
    $bg_color = imagecolorallocate($original, $rgb['r'], $rgb['g'], $rgb['b']);

    $new = imagerotate($original, $angle, $bg_color);

是否可以使用 jquery 旋转图像客户端,然后通过 PHP 将图像保存到服务器?我假设这将有助于提高图像质量。

最佳答案

在我们的共享服务中,我们以不同的方式处理这个问题。我们始终保留原始图像并存储初始旋转(0)。

旋转时,加载原始图像,旋转 +/- 90,并将副本写入文件系统。之后数据库会更新为新的旋转。

不过,您的数据库中还需要两列,用于轮换和轮换的副本位置。我还假设您总是进行初始调整大小(对于不同的大小可能多次调整),以便额外的列始终指向副本而不是有时指向原始而不是旋转直到旋转。

关于每次旋转后 PHP 图像旋转都会失去质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11331739/

相关文章:

php - MAMP - 现有的 Apache 和 PHP

html - 如何创建只是轮廓的框阴影?

python - 在 Python 中调整图像大小而不会丢失 EXIF 数据

c++ - opencv sgbm 在对象边缘产生异常值

php - 无法使用 Xampp 加载 Zend 加载程序

php - 从 php 中的 mysql 查询中获取日期

php - Joomla 查询选择左连接 $var

linux - 我怎样才能从硬盘上制作一张没有任何痕迹的图像,这样即使是专家也无法发现发生了什么?

python - 我无法使用箭头键在 pygame 中移动图像

java - 从图像中提取文本