JLinMr / PixPro

PixPro 一款个人需求的高效图床,集成了强大的图片压缩功能与优雅的前台。后台管理瀑布流展示和AJAX刷新,能有效降低存储与带宽成本。
https://dev.ruom.top
MIT License
76 stars 11 forks source link

图片为什么是竖着的? #1

Closed kingfly0927 closed 1 month ago

kingfly0927 commented 1 month ago

PixPin_2024-08-03_11-17-41 就这样

kingfly0927 commented 1 month ago

怎么能让它横着?

kingfly0927 commented 1 month ago

我传到你的那个图床然后后台也是这样横图变成竖着的了

kingfly0927 commented 1 month ago

另外PNG格式的图片会404 PixPin_2024-08-03_12-06-34 下面的是我的png图片 photo1(1)

kingfly0927 commented 1 month ago

1.那个图片颠倒好像是我图片尺寸顺序读取错误(没问题了哈哈哈) 2.就是那个png图片上传404问题(没解决)

JLinMr commented 1 month ago

就是那个png图片上传404问题(没解决)

能否发个链接呢,我上传显示一切正常的

https://i1.wp.com/dev.ruom.top/i/2024/08/07/355809.webp

JLinMr commented 1 month ago

1.那个图片颠倒好像是我图片尺寸顺序读取错误(没问题了哈哈哈) 2.就是那个png图片上传404问题(没解决)

还有你好像用的不是我的这个程序吧

kingfly0927 commented 1 month ago

一样的,你这个我部署了也是一样的,后来我看问题都一样,就没部署了

kingfly0927 commented 1 month ago

有一个程序和你的差不多

kingfly0927 commented 1 month ago

那个叫minipix程序,我以为你们一起的

kingfly0927 commented 1 month ago

这个背景图是我换的

JLinMr commented 1 month ago

这个背景图是我换的

能否提供一下出现问题的图片呢

kingfly0927 commented 1 month ago

test 图还是这个图,刚刚我重新部署了,图可以显示上传了,但是png格式不压缩 ![Uploading PixPin_2024-08-07_14-37-42.jpg…]()

JLinMr commented 1 month ago

你说的横图变竖图也是这个吗

https://i1.wp.com/dev.ruom.top/i/2024/08/07/355809.webp 你发的这个图压缩后是可以获取信息的 你可以自行查看https://dev.ruom.top/admin/ image

QQ: 153336174 可以联系一下,看一下具体的错误日志和信息

kingfly0927 commented 1 month ago

PixPin_2024-08-07_14-47-05 添加了,确实没压缩,那个横图竖图那个是我的图片问题,横竖的尺寸读取错误,现在就是png不压缩

Xinslive commented 1 month ago

不对劲,png按理来说是可以压缩的

JLinMr commented 1 month ago

PixPin_2024-08-07_14-47-05 添加了,确实没压缩,那个横图竖图那个是我的图片问题,横竖的尺寸读取错误,现在就是png不压缩

你好。并没有收到你的好友申请,麻烦你留一下你的联系方式吧

kingfly0927 commented 1 month ago

qq2811297368

JLinMr commented 1 month ago

无法复现此问题,附一个临时解决方案:

修改config/image_processing.php

头部添加以下代码

/**
 * 使用Imagick将PNG图片转换为JPEG格式
 */
function convertPngToJpegWithImagick($source, $destination, $quality = 60) {
    try {
        $image = new Imagick($source);
        $image->setImageFormat('jpeg');
        $image->setImageCompressionQuality($quality);
        $image->setImageAlphaChannel(Imagick::ALPHACHANNEL_DEACTIVATE);
        $image = $image->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
        $width = $image->getImageWidth();
        $height = $image->getImageHeight();
        $maxWidth = 2500;
        $maxHeight = 1600;
        if ($width > $maxWidth || $height > $maxHeight) {
            $ratio = min($maxWidth / $width, $maxHeight / $height);
            $newWidth = round($width * $ratio);
            $newHeight = round($height * $ratio);
            $image->resizeImage($newWidth, $newHeight, Imagick::FILTER_LANCZOS, 1);
        }
        $result = $image->writeImage($destination);
        $image->clear();
        $image->destroy();
        return $result;
    } catch (Exception $e) {
        logMessage('Imagick转换PNG为JPEG失败: ' . $e->getMessage());
        return false;
    }
}

image_processing.php