BLumia / pineapple-pictures

A homebrew lightweight image viewer.
https://sourceforge.net/projects/pineapple-pictures/
MIT License
406 stars 51 forks source link

功能建议:增加默认按实际尺寸1:1来打开图片 #87

Closed blue2018 closed 1 year ago

blue2018 commented 1 year ago

感谢在最新版本中将系统任务栏图标增加显示图片名称! 想再提个建议: 可否增加选项,让图片打开时直接以实际尺寸1:1来显示,或者当打开图片并且点击了1:1实际大小的选项,下次打开其他图片都会默认以实际尺寸来显示。这对大图非常实用,目前的设置每次打开大图都不是最清晰的,必须点选1:1选项才会变清晰。 望采纳,谢谢!

BLumia commented 1 year ago

我个人觉得这个需求很奇怪。当你的屏幕足以 1:1 显示完整图片时,你(通过文件关联的方式)打开图片后他们就会是 1:1 显示的。如果你浏览的图片大于你的屏幕大小的话,默认 1:1 会使你的屏幕无法一次概览整个图片的内容,这反而违背了图片查看器的初衷。

或者说,你目前是每次都先运行看图的可执行文件,然后再拖图片进去的吗?

blue2018 commented 1 year ago

不是的,我是通过另一个go程序调用pineapple-pictures来打开图片,图片是同一台电脑下的全屏截图,每次打开的图片我可以看到完整的截图内容,但是它有点模糊,即便pineapple-pictures已经窗口最大化,我每次都需要点击1:1这个按钮,它才会最清晰显示,一旦切换前后图片,它又变模糊了。 通过文件关联方式或者拖拉图片进pineapple-pictures来打开,在我这测试的结果都是一样的,并不是以最清晰的方式显示。我的感觉是,程序打开图片或前后切换时,进行了某种程度的自适应缩放。

BLumia commented 1 year ago

我未能在本地复现你所说的问题(或者是我没理解你的意思),可以更详细的描述下我应该怎样才能复现问题吗?附带录屏视频也可以。

图片是同一台电脑下的全屏截图,每次打开的图片我可以看到完整的截图内容,但是它有点模糊,即便pineapple-pictures已经窗口最大化,我每次都需要点击1:1这个按钮,它才会最清晰显示,一旦切换前后图片,它又变模糊了。

你的意思是,因为看图打开它时,由于“任务栏”占据的位置导致图像并非全屏显示(因而图像被缩小了一点点),所以你可能看不清其中的文字吗?

程序打开图片或前后切换时,进行了某种程度的自适应缩放。

在图像缩放 < 100% (即小于 1:1,或者说,图像目前是缩小状态)时,会有抗锯齿开启。大于或等于时即不会有抗锯齿。我只进行过这样的处理。

blue2018 commented 1 year ago

https://github.com/BLumia/pineapple-pictures/assets/13889354/2b2ca81e-b04b-4814-9851-e98a8fccb781

这是我录制的视频,截图是全屏截图,不过通常我的截图不会包含任务栏在内,只是录制视频时无法调用系统截图程序,而用视频录制软件内部的截图时只有全屏截图才能重现我遇到的情况。

我觉得很有可能是你提到的那个抗锯齿问题引起的,貌似只要有缩放,就会这样,图片中有很多文字或线条时,看起来会尤为明显,小尺寸图片是没问题的。

BLumia commented 1 year ago

当你按下 1:1 时,右下角的图片导航区域是存在并且展示出当前确实未展示出完整图片的,说明您的屏幕可用区域确实不足以显示完整的图片。这个和抗锯齿无关,因为正常打开时图片就是略微缩小的状态(因为就是显示不完整)。

按照这个视频的展示,我觉得因此加默认 1:1 打开的行为不合理。你觉得如果增加 默认全屏 打开看图的方式可以解决问题吗?(文档没有写,但目前其实可以按 F11 切换全屏)

blue2018 commented 1 year ago

是的,默认1:1的行为确实不能适用所有大尺寸图片,这有时会导致图片显示不完整,但是能否增加一个可选项,让用户自行选择打开图片时是否进行缩放呢?或者记住用户上次的操作,如果点选了1:1,那下次打开图片时,就以1;1显示。 毕竟每个人的需求不同,这样会更人性化一些,相对而言,每张打开的图片都是最清晰的,也会更加赏心悦目。 全屏显示是可以解决问题,但同时打开多张不同路径下的图片时,图片间的切换就比较麻烦了

BLumia commented 1 year ago

但是能否增加一个可选项,让用户自行选择打开图片时是否进行缩放呢?或者记住用户上次的操作,如果点选了1:1,那下次打开图片时,就以1;1显示。

我仍然认为这种需求非常特化,不是很大众的需求。

这样会更人性化一些,相对而言,每张打开的图片都是最清晰的,也会更加赏心悦目。

因为你的情况是图片刚好比屏幕可用大小大那么一丁点,所以 1:1 展示不会显得特别怪。如果图片比屏幕大出很多,你只能看到一部分,那就不是赏心悦目了。

全屏显示是可以解决问题

所以我引入个打开时全屏的选项或许好一些对吧?

但同时打开多张不同路径下的图片时,图片间的切换就比较麻烦了

上面你提到你的用法是通过 go 程序调用我的程序来查看图片。实际如果你启动我的程序时,如果那时候参数传入的图片为多张时,列表就会以你传入的文件列表为准,而不是以第一张图片的所在目录为准了。(假设你设置了默认全屏打开的话,在切换图片时,图片也不会因为显示不完整而被缩小,因为全屏查看时就确实能显示完整的图片了)


由于这个需求本身在非常特定的情况下(图片刚好比屏幕可用大小大那么一丁点)才比较有用,所以我不打算加默认 1:1 展示的功能。由于此项目本身是开源的,所以如果增加默认全屏的选项你觉得无法解决问题,非常希望默认能 1:1 展示的话,你可以直接改代码 :)

blue2018 commented 1 year ago

主要是多张图片打开后,后续我需要多次手动点选任务栏中的图片名称来切换查看,如果全屏,在没退出全屏时,只能通过键盘快捷键的轮询方式找到某张图片后才能切换,效率就太低了。 不好意思,给你添麻烦啦,我再想想别的办法好了,谢谢!

BLumia commented 1 year ago

好。那么这个 issue 我就关闭处理了。以及鉴于启动时全屏无法解决你的原始需求,默认全屏的选项我也暂时不加吧。

无论如何,感谢支持 :)

BLumia commented 1 year ago

我觉得可以以另一种形式来解决这个问题,比如我可以提供一个选项,当开启时,当前会话中,你将总是会以相同的缩放比查看所有图片,切换上一张/下一张时不重置图片缩放。这样的话,你只需要点击一次 1:1,然后在前后翻页的过程中即可保持 1:1(100%)的缩放来浏览图片了。

这样的方案同时可以满足一些其它的应用场景。比如浏览一个目录里都是尺寸很小的图片时,可能希望都以一个适当放大的状态浏览这个目录下的图片。或是某个目录下图片均是旋转过的,需要以某个一致的旋转角度(比如都转 90°)查看(后者的描述对应到 issue #89。

你觉得这样的形式是否更合适?

blue2018 commented 1 year ago

你好,感谢提供解决方案!你的意思是,即便开启了这个新增的选项,每次开启新的会话,还是必须先手动点一下1:1按钮,对吗?如果是这样,为何不考虑一步到位,新增的选项,用户一旦开启,每次会话将不再对图片进行缩放呢?

BLumia commented 1 year ago

为何不考虑一步到位,新增的选项,用户一旦开启,每次会话将不再对图片进行缩放呢?

可能会考虑加个参数来使启动应用时即进入这种状态,但这个肯定不会是默认值。

因为这种使用场景本身就是很少见的,并且对一般用户而言,如果无意间触发这个功能且没意识到的情况下,如果启动应用时刚好打开了很大的图片,会导致应用看上去出了什么奇怪的 bug。

一步到位

这个行为的目的是尽可能通用化,比如可以解决你的需求,以及解决浏览小图时统一放大的需求,以及解决统一旋转浏览的需求。它并不是专门为了解决你的 1:1 需求而提供的,所以并不能算是“一步到位”

blue2018 commented 1 year ago

好的🙂

BLumia commented 1 year ago

因为具有一定相关性所以这里也更新说明一下:

我觉得可以以另一种形式来解决这个问题,比如我可以提供一个选项,当开启时,当前会话中,你将总是会以相同的缩放比查看所有图片,切换上一张/下一张时不重置图片缩放。这样的话,你只需要点击一次 1:1,然后在前后翻页的过程中即可保持 1:1(100%)的缩放来浏览图片了。

这个功能自 https://github.com/BLumia/pineapple-pictures/commit/9677fed3f26db0962d234e679ff88a08762476ab 起提供,下个版本里就会附带了。这里也有一个已经包含了此功能的 CI 构建版本可供体验。

blue2018 commented 1 year ago

嗯嗯,非常感谢!