为了账号安全,请及时绑定邮箱和手机立即绑定

在Windows图像查看器中打开多个图像,并在每个角落打开多个此类窗口

在Windows图像查看器中打开多个图像,并在每个角落打开多个此类窗口

白衣染霜花 2023-10-26 15:38:21
我是初学者,我确信这很简单,但我一生都无法通过谷歌搜索找到解决方案。在一个文件夹里,我有9张照片。目前,我突出显示其中的几个,然后右键单击并在默认图像查看器中打开,然后将窗口放在角落里,然后按此排列对其余图像执行此操作:文件夹中的所有照片所有照片在每个角落打开这样,我可以将鼠标悬停在左上角窗口上并用鼠标滚动,它将在图像 1.png 和 2.png 之间滚动。如果我将鼠标悬停在右上角并用鼠标滚轮滚动,图像将在 3.png、4.png 和 5.png 之间滚动。其他两个窗口也是如此。目前我有很多图像必须手动打开并像这样配置。我想编写一个简单的脚本,以这种方式自动打开这些图像并将它们排列在每个角落。我找到了一些打开单个图像的方法,但找不到在照片查看器的单个实例中打开多个图像的方法,也找不到如何重新定位此类窗口。from PIL import Image img = Image.open('example.jpg') img.show()任何帮助,将不胜感激!
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

这可能不是在我原来的问题中完成任务的最佳方法,但在按照本指南在 Windows 10 中启用原始 Windows 照片查看器之后:How-to-make-windows-photo-viewer-your-default-image-viewer -在windows-10上

我制作了 4 个文件夹,每个文件夹中都有相应的图片(左上角、右上角、左下角和右下角)。

然后,我创建了默认应用程序来使用 Windows 照片查看器打开 png 图像。

安装win32gui:

pip install win32gui

然后我写了这个似乎有效的脚本:

import os

import win32gui

import time


FIRST_PATH = 'C:\\Gale\\Img_test\\left_bottom\\6.png'

SECOND_PATH = 'C:\\Gale\\Img_test\\left_top\\1.png'

THIRD_PATH = 'C:\\Gale\\Img_test\\right_bottom\\8.png'

FOURTH_PATH = 'C:\\Gale\\Img_test\\right_top\\3.png'


folder_paths = [FIRST_PATH, SECOND_PATH, THIRD_PATH, FOURTH_PATH]


TOP_RIGHT_COORD = [954,0,980,530]

TOP_LEFT_COORD = [-10,0,980,530]

BOTTOM_RIGHT_COORD = [954,515,980,530]

BOTTOM_LEFT_COORD = [-10,515,980,530]



def openCharts(paths):

    for path in paths:

        os.startfile(path)


def enumHandler(hwnd, lParam):

     if win32gui.IsWindowVisible(hwnd):

         if '1.png' in win32gui.GetWindowText(hwnd):

             win32gui.MoveWindow(hwnd, TOP_LEFT_COORD[0], TOP_LEFT_COORD[1], TOP_LEFT_COORD[2],TOP_LEFT_COORD[3], True)

         elif '3.png' in win32gui.GetWindowText(hwnd):

             win32gui.MoveWindow(hwnd, TOP_RIGHT_COORD[0], TOP_RIGHT_COORD[1], TOP_RIGHT_COORD[2],TOP_RIGHT_COORD[3], True)

         elif '6.png' in win32gui.GetWindowText(hwnd):

             win32gui.MoveWindow(hwnd, BOTTOM_LEFT_COORD[0], BOTTOM_LEFT_COORD[1], BOTTOM_LEFT_COORD[2],BOTTOM_LEFT_COORD[3], True)

         elif '8.png' in win32gui.GetWindowText(hwnd):

             win32gui.MoveWindow(hwnd, BOTTOM_RIGHT_COORD[0], BOTTOM_RIGHT_COORD[1], BOTTOM_RIGHT_COORD[2],BOTTOM_RIGHT_COORD[3],  True)


openCharts(folder_paths)

time.sleep(0.5)

win32gui.EnumWindows(enumHandler, None)


查看完整回答
反对 回复 2023-10-26
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信