V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tctc4869
V2EX  ›  程序员

Windows 上有什么看图软件,能以用户给定的一组图片路径去浏览图片?

  •  1
     
  •   tctc4869 · 2020-07-02 12:02:02 +08:00 · 5212 次点击
    这是一个创建于 1598 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一般常用的看图软件,点击一个图片,打开软件后,软件把这个图片所在路径文件夹下的所有图片会加载到软件的图片缓存列表。之后会显示软件,常用查看操作包括缩放,固定缩放等级等

    点击看图软件的下一步或上一步,会切换到当前图片在缓存列表中的索引的下一个索引和上一个索引对应的图片。但这都是限定在一个文件夹内。因为现在常用看图软件的打开图片逻辑,就是扫描打开图片的所在文件夹的图片,我希望能浏览不同文件夹下的图片(也就是下一张图片和上一张图片可能是不同文件夹下的图片)

    给定一组图片文件路径给软件,让软件根据用户给定的图片路径组去浏览图片,怎么给呢?根据剪切板,或者是带有图片路径的文本文件。软件扫描带有图片路径的内容的剪切板或文本文件,并打开图片缓存列表,并进行浏览。


    比如剪切板有以下内容 D:\tu\1.jpg,D:\tu\2.jpg,D:\25\1.gif,D:\tu\12\1.jpg,D:\111\1.png
    比如一个 txt 文件,有以下内容
    D:\tu\1.jpg
    D:\tu\2.jpg
    D:\25\1.gif
    D:\tu\12\1.jpg
    D:\111\1.png

    不同文件夹路径的图片。让软件扫描用户给定不同文件夹路径下的图片组,并打开浏览,有哪个软件能做到呢?
    第 1 条附言  ·  2020-07-02 14:02:31 +08:00
    看图软件的图片流程是这样的

    点击“打开”菜单 → 弹出文件选择对话框→选择图片或文件夹,点击确定,而上一页和下一页所切换的图片都是同一个文件夹内的图片

    但我想要的是这样的 ↓

    点击“打开”菜单 → 弹出文件选择对话框→选择存放图片路径的文本文件,点击确定,而上一页和下一页所切换的图片都是存放图片路径的文本文件内指定的图片

    点击“打开”菜单 → 从剪切板导入复数的图片文件路径,而上一页和下一页所切换的图片都是从剪切板导入的图片文件路径所指向的图片
    第 2 条附言  ·  2020-07-02 14:52:22 +08:00
    想找一个相册管理软件,要求能从 txt 或剪切板中导入图片
    第 3 条附言  ·  2020-07-03 16:53:27 +08:00
    谢谢 55 楼,那位给了一个看图软件的连接,我试用了一下这个软件,有这个我想要的效果,在 57 楼有演示的 gif 图片链接演示
    77 条回复    2020-09-16 22:48:21 +08:00
    JokeEnd
        1
    JokeEnd  
       2020-07-02 12:30:46 +08:00
    自己写一个?
    systemcall
        2
    systemcall  
       2020-07-02 12:32:34 +08:00
    把图片添加到库,在库中打开。现在好像不行了
    tctc4869
        3
    tctc4869  
    OP
       2020-07-02 12:49:45 +08:00
    @JokeEnd 我对图像操作的 ui 不熟,需要学习一些时间。写这个等于重新实现一个看图软件。然后在加上我所要的功能。
    Mindjet
        4
    Mindjet  
       2020-07-02 13:00:49 +08:00
    @tctc4869 最好把应用场景说得更细致一些,这样可能会有其他的办法绕过问题。如果是我会用 AutoHotKey 这类脚本语言配合现有软件实现,在大多数情况下应该是可以解决问题的。
    tctc4869
        5
    tctc4869  
    OP
       2020-07-02 13:08:02 +08:00
    @Mindjet 我已经说的很简单了,

    以看图软件的使用方式想浏览一组图片,这一组图片的每一个的文件路径可能不是同一个文件夹下的。而“一组不同文件夹路径下的图片”本来用其他软件就是归类好的。不可以剪切这一组图片文件。只能根据给定一组图片文件的路径,让软件去浏览。
    sleepm
        6
    sleepm  
       2020-07-02 13:08:22 +08:00
    hantsy
        7
    hantsy  
       2020-07-02 13:10:44 +08:00
    @sleepm 这个神器啊。好多年没有用了。
    hantsy
        8
    hantsy  
       2020-07-02 13:13:14 +08:00
    @sleepm 以前用 Linux 的时候玩得多。它一套软件都是很厉害。Linux 很多图像处理的工具,如 ImageMagik 。
    tctc4869
        9
    tctc4869  
    OP
       2020-07-02 13:14:00 +08:00
    @Mindjet 你可以理解,用户给定的一组图片,实际上是用其他的标签软件归类的图片,其他软件有个功能,可以为标签归类的图片复制文件路径到剪切板中,生成存放图片路径的 txt 文件。而没有看图软件的功能。

    而我就是想浏览标签归类下的图片,但这些图片文件不能剪切,否则标签与图片文件的绑定就是失效了。
    Mindjet
        10
    Mindjet  
       2020-07-02 13:16:11 +08:00
    @tctc4869 平台和用户都没说
    hantsy
        11
    hantsy  
       2020-07-02 13:16:14 +08:00
    Linux 界面是不是 TK 的。好多年前了。
    tctc4869
        12
    tctc4869  
    OP
       2020-07-02 13:18:03 +08:00
    @Mindjet 好吧,我用词有问题,你把用户换成“我”把,平台就是 windows,
    Mindjet
        13
    Mindjet  
       2020-07-02 13:18:28 +08:00
    @tctc4869 我说得是「更细致」而不是「更简单」,你的回复令我困惑,「更简单」≈「更粗糙」。遇到这样的情况,我一般会先问对方「更细致」的具体意思,而不是先完全曲解意思然后再发两段很长的文字。
    Mindjet
        14
    Mindjet  
       2020-07-02 13:18:52 +08:00
    @tctc4869 用 AutoHotKey 就能实现,熟练的话 10 分钟吧。
    iamwho
        15
    iamwho  
       2020-07-02 13:25:18 +08:00
    remove-item .\temp\*
    $list = ".\list.txt"
    foreach($file in get-content $list)
    {
    copy-item $file -destination .\temp
    }
    看图程序 .\temp
    tctc4869
        16
    tctc4869  
    OP
       2020-07-02 13:32:01 +08:00
    @sleepm

    这个我试了一下,各方面不错,但似乎找不到我想要的功能,但是图片路径怎么一起给它,让它浏览呢?
    比如
    d:\1\1.jpg
    d:\test\test.jpg
    geelaw
        17
    geelaw  
       2020-07-02 13:32:58 +08:00
    如果所有图片都位于同一个分区且该分区采用 NTFS 格式,则可以利用硬链接归约为同一目录下的图片浏览。

    例如在 PowerShell 里,假设 $Images 是非空数组,存放了所有需要看的图片的路径,且都和 $MyFolder 同一个分区下的,例如 $MyFolder = 'C:\Users\username\Pictures\Browsing' 那么可以用下面的命令把所有的图片都链接到 $MyFolder 下:

    $Images = Get-Item $Images
    $fmt = '0' * $Images.Count.ToString().Length
    For ($i = 1; $i -lt $Images.Count; ++$i)
    {
    $img = $Images[$i]
    cmd /c ">nul mklink /h `"$([System.IO.Path]::Combine($MyFolder, $i.ToString($fmt) + $img.Extension))`" `"$($img.FullName)`""
    }
    Invoke-Item $MyFolder

    看完之后直接删除 $MyFolder 里面的内容即可,这样不会影响原来的文件。
    xiadong1994
        18
    xiadong1994  
       2020-07-02 13:34:55 +08:00 via iPhone
    你需要的不是看图软件,而是相册管理软件。不要用“路径”,”目录”这种思维来考虑,要用 Google Photos 或者 Lightroom 的“相册”或者“标签”来考虑。
    jnmsn8806
        19
    jnmsn8806  
       2020-07-02 13:38:38 +08:00
    @xiadong1994,回答的好。楼主思路要改变一下。
    tctc4869
        20
    tctc4869  
    OP
       2020-07-02 14:03:59 +08:00
    @xiadong1994
    @jnmsn8806

    看图软件的打开图片流程是这样的

    点击“打开”菜单 → 弹出文件选择对话框→选择图片或文件夹,点击确定。

    但我想要加入这样的打开功能 ↓

    点击“打开”菜单 → 弹出文件选择对话框→选择存放图片路径的文本文件,点击确定,

    点击“打开”菜单 → 从剪切板导入复数的图片文件路径,
    sleepm
        21
    sleepm  
       2020-07-02 14:18:37 +08:00
    我的理解,你的目的,就是差不多维护一个素材库,或者媒体库
    路径自己一个一个加
    https://www.adobe.com/products/bridge.html
    https://cn.eagle.cool/
    或者找到配置文件修改配置
    xiadong1994
        22
    xiadong1994  
       2020-07-02 14:24:27 +08:00 via iPhone
    @tctc4869 你不该拘泥于路径,你想做的是:打开一个图片集合,但是图片可以在磁盘的任意位置。这就是就是打开一个相册,或者打开所有具有某个 tag 的图片。随便哪个媒体库或者相册软件都能做到。
    tctc4869
        23
    tctc4869  
    OP
       2020-07-02 14:33:23 +08:00
    @xiadong1994 那我换成图片集合把,图片集合的载体是一个 txt 文件,剪切板的内容,里面存放着对图片文件的引用,那个媒体库或相册软件能打开呢,

    至于为什么图片集合的载体是一个 txt 文件或剪切板的内容,那是因为被某个软件归类的图片,对一个归类的图片生成一 txt 文件,以引用的形式来保存图片集合,目的是希望其他软件能打开能浏览
    tctc4869
        24
    tctc4869  
    OP
       2020-07-02 14:38:02 +08:00
    @tctc4869
    @xiadong1994
    说错了

    那这样说,txt 文件就是一个图片集合,里面存放着对图片的引用。这类 txt 文件是其他的文件归类软件生成的,

    现在我希望有图片管理 /媒体库 /看图软件能打开这个形式的图片集合。有哪个软件能做到么?
    xiadong1994
        25
    xiadong1994  
       2020-07-02 14:43:32 +08:00 via iPhone
    @tctc4869 必须从 txt 里读就比较麻烦了,最好的办法是找一个可以直接修改相册里的图片路径的,也就是相册是以文本形式存储的软件,然后写个脚本来转换。次一点的办法就是找本地 server base 的相册软件写脚本 call api 把图片 import 进去。再次就是找个简单的开源相册软件自己加一个 import txt 功能。
    DOLLOR
        26
    DOLLOR  
       2020-07-02 14:44:06 +08:00
    用 html+js 可以徒手撸一个网页来实现。
    xiadong1994
        27
    xiadong1994  
       2020-07-02 14:50:26 +08:00 via iPhone
    @tctc4869 *nix 系统的话还可以用临时目录+软连接来弄,最简单。windows 的话不知道快捷方式能不能 work
    sleepm
        28
    sleepm  
       2020-07-02 15:12:00 +08:00
    @DOLLOR 好主意,最简单便捷
    sleepm
        29
    sleepm  
       2020-07-02 15:14:17 +08:00
    不要考虑你的需求,考虑你的目的
    tgy3313
        30
    tgy3313  
       2020-07-02 15:40:53 +08:00
    你这相当于给随机路径列一个表出来,然后打开显示,windows 目前应该没有,只能定制。
    选一个
    1,复制到临时目录,用现有的查看器打开
    2,写个查看器,直接打开 txt,列出目录浏览,也不是多麻烦的事
    Howlaind
        31
    Howlaind  
       2020-07-02 18:01:19 +08:00 via Android
    感觉好像 mpv 可以,虽然它是一个视频播放器,但支持播放列表。
    tctc4869
        32
    tctc4869  
    OP
       2020-07-02 19:14:58 +08:00
    @Howlaind 不行吧,它好像无法导入 txt 或剪切板里的路径对应的文件
    tctc4869
        33
    tctc4869  
    OP
       2020-07-02 19:22:42 +08:00
    @tgy3313 我没写过图片查看器,对于我来说的打开 txt 文件导入,下一页和上一页这些逻辑比较简单, 麻烦的是图像 ui 浏览的操作编码,比如图片缩放,缩放级别限定,显示多少内容(模糊程度)。
    Howlaind
        34
    Howlaind  
       2020-07-02 19:25:54 +08:00
    @tctc4869 #32 mpv --image-display-duration=inf --playlist=list.txt
    第一个参数设置不自动显示下一张,第二个参数指定播放列表
    imn1
        35
    imn1  
       2020-07-02 19:44:20 +08:00
    这个功能是我写的工具(pyqt5 写的)其中一个 feature

    但我写的目的不仅是看图,是文件增删改查、复制移动,就是不同地方的多文件拖放到面板,然后统一处理
    代码太丑不想公开,反正就是这个需求,形成的思路,自己写也不太难
    sigl0p
        36
    sigl0p  
       2020-07-03 08:20:21 +08:00
    @tctc4869 #32 只需要看图的话 python 写个脚本把所有图片复制一份到同一个文件夹,再看?
    ungrown
        37
    ungrown  
       2020-07-03 08:27:02 +08:00
    我觉得可以用 Python 写一个,不难
    ungrown
        38
    ungrown  
       2020-07-03 08:28:04 +08:00
    楼主要不我待会儿写一个试试?
    不过不打包票哦。
    tctc4869
        39
    tctc4869  
    OP
       2020-07-03 08:33:04 +08:00
    @sigl0p 不行的,复制图片会增加额外的时间和占用更多的容量

    剪切也不行,因为这些图片路径与其他应用程序的产生的数据进行关联绑定了。如果路径变了,关联绑定就失效了,改回来很麻烦的。
    tctc4869
        40
    tctc4869  
    OP
       2020-07-03 08:35:35 +08:00
    @sigl0p 补充一下,复制还有一个原因是,txt 里面记录的图片文件引用不确定有多少,但是超过 1000 个是有可能的
    ungrown
        41
    ungrown  
       2020-07-03 08:54:44 +08:00
    我打算这样设计,没有按钮,界面就一张图,控制靠按键,AS 左右,WS 缩放,X 锁定缩放,Q 从剪贴板获取源,E 将当前现实图片的路径放入剪贴板
    ungrown
        42
    ungrown  
       2020-07-03 09:00:30 +08:00
    图片有哪些格式的后缀名啊?
    mikoshu
        43
    mikoshu  
       2020-07-03 09:12:25 +08:00
    上 electron fs 取图片文件然后前端展示出来 配合一些轮播组件应该很简单
    tctc4869
        44
    tctc4869  
    OP
       2020-07-03 09:25:46 +08:00
    @ungrown jpg,png,gif,bmp,apng 。这些常用的把,你真打算做么?我已经打算自己挑选一个自己熟悉 c/s 技术的开源图像查看器去改了。
    ungrown
        45
    ungrown  
       2020-07-03 09:28:23 +08:00
    @tctc4869 是真的,反正也没想做其他功能。
    你想用什么改,我也想了解一下
    purensong
        46
    purensong  
       2020-07-03 09:44:08 +08:00
    可以用 python 写一个,最后达成 exe 可执行文件
    tctc4869
        47
    tctc4869  
    OP
       2020-07-03 11:20:18 +08:00
    @ungrown 我打算用 C#的前端技术-wpf 去做。我去 github 找了几下,找到有几个关于图片查看的。但具体去改哪个,我都还没挑选好。
    rnm330
        48
    rnm330  
       2020-07-03 12:44:45 +08:00
    是不是说的复杂了 不就是相册管理软件里面打标签 然后按照标签浏览么 ....
    tctc4869
        49
    tctc4869  
    OP
       2020-07-03 13:10:07 +08:00
    @rnm330 简单点说, 我随机给一个图片集合,但是图片集合的容器是一个 txt 文件。要么就是剪切板。里面放着图片文件的引用(图片文件路径),在图片位置不可变的要求下,要求能有看图软件或相册管理软件从 txt 文件或剪切板里导入图片文件
    Ultraman
        50
    Ultraman  
       2020-07-03 13:14:36 +08:00 via Android
    要不要考虑一下 PPT 。。。
    tctc4869
        51
    tctc4869  
    OP
       2020-07-03 13:23:41 +08:00
    @Ultraman

    ppt 不是做图片浏览的把
    sleepm
        52
    sleepm  
       2020-07-03 13:30:21 +08:00 via Android
    @Howlaind
    播放列表 m3u 可以考虑,或者其他格式播放列表文件
    写个静态 html,放到 http 服务器目录,
    js 解析 txt,html+vue 加载 img
    Ultraman
        53
    Ultraman  
       2020-07-03 13:35:37 +08:00 via Android
    @tctc4869 不是,但是你一张 PPT 中插一张图片然后播放 PPT 就是了。
    Ultraman
        54
    Ultraman  
       2020-07-03 13:36:03 +08:00 via Android
    @Ultraman 请忽略我吧。。
    real3cho
        55
    real3cho  
       2020-07-03 13:58:30 +08:00
    imn1
        56
    imn1  
       2020-07-03 14:01:39 +08:00
    如果你只想用现成的看图工具(人家优化得比较好),给你个其他方案——
    软链放到一个临时目录,这个步骤可以脚本完成
    然后阅图工具打开这个目录
    看完后是否删掉软链、临时目录,就随意
    opiviqo
        58
    opiviqo  
       2020-07-03 15:02:07 +08:00
    acdsee 还有没有?
    cwxcwx2018
        59
    cwxcwx2018  
       2020-07-03 15:10:30 +08:00
    美图看看就有了--穿透文件夹
    或则使用文件管理软件直接展开文件夹内容
    cwxcwx2018
        60
    cwxcwx2018  
       2020-07-03 15:12:14 +08:00
    http://kankan.meitu.com/

    聪明的看图软件
    独有的文件夹穿透功能,让您更快的找到图片。文件夹收藏让您快速直达复杂目录下的文件夹。更方便的图片批量旋转、改变尺寸、重命名,更多炫酷效果的幻灯让图片展示更美!美图看看还有更多智能改进,等你发现。
    BBrother
        61
    BBrother  
       2020-07-03 15:23:58 +08:00
    你们是不是都不用 win10 自带的照片的?
    tctc4869
        62
    tctc4869  
    OP
       2020-07-03 16:26:46 +08:00
    @opiviqo acdsee 没有从 txt 或剪切板导入的功能
    tctc4869
        63
    tctc4869  
    OP
       2020-07-03 16:38:01 +08:00
    @cwxcwx2018 你搞错了,美图看看的文件夹穿透并不是我想要的功能。

    简单点说, 我随机给一个图片集合,但图片集合容器不是文件夹,而是剪切板或 txt 文本,里面放的是对图片链接引用(图片的绝对路径),里面链接映射的的图片的位置不一定都在一个分区的根路径下一个的文件夹内,或者一个分区里内。
    比如我想一键导入两个图片
    d:\ 1.jpg
    e:\1.png

    在不改动图片位置的情况下浏览。要么通过文本文件导入,要么通过剪切板导入。
    tctc4869
        64
    tctc4869  
    OP
       2020-07-03 16:38:31 +08:00
    @BBrother win10 自带照片没有从 txt 或剪切板导入的功能吧
    tctc4869
        65
    tctc4869  
    OP
       2020-07-03 16:42:57 +08:00
    @cwxcwx2018
    @opiviqo

    55 楼的那发了一个软件介绍的超链接网页,57 楼那里有一个 gif 演示,那个演示所展现的效果,就是我想要的
    tctc4869
        66
    tctc4869  
    OP
       2020-07-03 16:51:44 +08:00
    @real3cho 谢谢,就是这个
    tctc4869
        67
    tctc4869  
    OP
       2020-07-03 16:54:21 +08:00
    @ungrown 你可以不用做了,55 楼那位给了一个已经拥有我想要的功能的软件了。在 57 楼有显示
    ungrown
        68
    ungrown  
       2020-07-03 18:05:46 +08:00
    @tctc4869 #67 多谢提醒,话说软链接这个方案也挺好的,我觉得
    tctc4869
        69
    tctc4869  
    OP
       2020-07-03 18:16:21 +08:00
    @ungrown 我之所以想要这个,是因为所谓的 txt 文件,剪切板里的图片链接,这些本来就是我用另外一个文件分类软件对它数据库存放文件进行一键生成的,可以生成文本容器,剪切板,甚至 sqlite 都可以,但那个文件分类软件没有看图功能。所以想找一找有没有从剪切板,文本文件里导入文件的方法。

    当然,要是有软件从 sqlite 数据库里导入图片也行。
    tctc4869
        70
    tctc4869  
    OP
       2020-07-03 18:17:14 +08:00
    @tctc4869 若是相对路径就更好了
    Jabin
        71
    Jabin  
       2020-07-03 18:23:02 +08:00
    picasa
    ungrown
        72
    ungrown  
       2020-07-03 18:23:15 +08:00
    @tctc4869 #69 明白,之前你把需求说的很清楚,我就是觉得软链接这个思路挺好的。批量生成软链接的速度应该非常快,如果把临时文件夹放到 ramdisk 肯定是秒速,之后就好办了,想用什么软件浏览就用什么软件浏览。
    或者更进一步,直接将分类软件输出的结构用软链接映射到一个临时文件夹里,后面就随心所欲了。
    llsquaer
        73
    llsquaer  
       2020-07-04 10:08:19 +08:00
    美图看看..自己找吧....一直在使用..就是很久没更新了..不过也没遇到过 bug... 最好找老版本.没广告
    tctc4869
        74
    tctc4869  
    OP
       2020-09-15 13:57:12 +08:00
    @llsquaer

    美图看看我用过,没有说的功能,应该说是 https://sourceforge.net/projects/jpegview/,是 56 楼给的
    tctc4869
        75
    tctc4869  
    OP
       2020-09-15 13:58:21 +08:00
    @opiviqo acdsee 我用过,没用,不过有人发了拥有我说的功能的软件,是 56 楼给的,不知道你是否知道有类似功能的
    tctc4869
        76
    tctc4869  
    OP
       2020-09-16 18:52:12 +08:00
    @ungrown 今天试了一下 Windows 下的文件软链接,我试了一下,感觉就是快捷方式,从 Xp 时代就有的,对于看图软件来说,打开一个图片文件,不会从快捷方式所在的目录开始浏览(读取打开的图片文件所在的目录下的所有图片),而是从快捷方式指向的源文件开始浏览,只有少数看图软件会从快捷方式所在的源文件进行浏览。比如 acdsee,或者某个类似 acdsee 的软件
    ungrown
        77
    ungrown  
       2020-09-16 22:48:21 +08:00
    @tctc4869 #76 我指的是 Linux 环境。
    我也在 Windows 里用软连接,但用的非常少,不到万不得已不会考虑,Windows 的软连接光是需要管理员权限才能创建这一点就够我受的了。Windows 的文件夹链接我倒是用的挺多的,这玩意和 Linux 中的符号链接很像。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 09:45 · PVG 17:45 · LAX 01:45 · JFK 04:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.