Ferry-200 / coriander_player

Windows端本地音乐播放器,使用Material You配色。Dart (Flutter) + Rust (lofty, windows-rs) + C (bass lib) 多语言项目。绝赞开发中。
https://ferry-200.github.io/coriander_player_website/
GNU General Public License v3.0
510 stars 22 forks source link

[改进] 非正方形封面显示 #87

Closed mintonight closed 1 month ago

mintonight commented 1 month ago

附带PR?

功能描述

对于封面不是正方形的音乐在播放界面的显示形式

效果对比

coriander_player的显示逻辑是将图片尺寸变形为正方形观感有些奇怪 image 网易云+betterncm的显示逻辑是截取中间的部分作为封面效果不错 image potplayer直接显示长方形感觉也挺好的 image

被改进功能的分类(选填)

UI

shing-yu commented 1 month ago

这个似乎和 #75 #80 相关的代码有点关系 似乎是强制转换为1x1比例的分辨率了( 或许可以加个中间区域裁剪?

mintonight commented 1 month ago

裁切可以的,类似网易云现在的方案

Ferry-200 commented 1 month ago

这个似乎和 #75 #80 相关的代码有点关系 似乎是强制转换为1x1比例的分辨率了( 或许可以加个中间区域裁剪?

这个问题一直有人提,但我从来没怀疑过是那里导致的🥲 等明天我仔细看看。

Ferry-200 commented 1 month ago

https://api.flutter.dev/flutter/painting/ResizeImage/resizeIfNeeded.html

https://api.flutter.dev/flutter/painting/ResizeImage/ResizeImage.html

https://api.flutter.dev/flutter/painting/ResizeImagePolicy.html

resizeIfNeeded 的实现是第二个方法。它的默认参数(ResizeImagePolicy.exact)是忽略原来的比例;

然后 ResizeImagePolicy.fit 就是保留原来的比例。

这下终于能解决了😋

Ferry-200 commented 1 month ago

done image