小甲鱼 发表于 2023-8-3 03:36:03

【开发中】求贤令000:开发一个截图程序

求贤令000:开发一个截图程序

请先阅读 -> 求贤令使用指南及奖励方案

本期主题:编写一个截图程序

获得奖励:C币 +300 + Extra(如果内容足够精彩,我们会给予额外的奖励)

编程语言:C/C++ 或 Python

开发要求:


[*]实现全屏截图功能
[*]实现指定尺寸截图功能
[*]实现滚动截图功能
[*]须有完整的注释说明及必要的功能讲解


竞标阶段:

在本帖中回复你的程序设计大纲或流程图,需注明所使用的编程语言,预期实现的功能,是否包含 UI 界面等。

越详细越好,我们将根据回复的内容筛选合适的开发者。


开发阶段:

恭喜 @Ewan-Ahiouy 和 @Mike_python小 两位英雄进入开发阶段。

请按照提供的程序设计大纲或流程图进行开发,

开发完成后请将程序发布在 Python交流版块 -> 作品展示分类(标题可自定)

随后回复本帖您的作品链接,我们将对您的代码进行基本的测试及反馈。


Ewan-Ahiouy 发表于 2023-8-3 19:48:44

md版:

# 程序目标

开发要求:

- 实现全屏截图功能
- 实现指定尺寸截图功能
- 实现滚动截图功能
- 须有完整的注释说明及必要的功能讲解

开发语言:

Python

预期实现:

1. UI界面
2. 全屏截屏选项
3. 指定尺寸截屏选项
4. 自定义截屏选项
5. 长截图选项
6. 实时显示截屏分辨率功能
7. 保存功能 ~~(废话)~~
8. 帮助


Mike_python小 发表于 2023-8-4 17:58:56

图片好像看不见,我传附件把

编程追风梦 发表于 2023-8-3 19:16:47

import tkinter as tk
from tkinter import messagebox
from PIL import ImageGrab

class ScreenshotApp:
    def __init__(self, root):
      self.root = root
      self.root.title("截图程序")
      self.root.geometry("300x200")
      
      self.create_widgets()

    def create_widgets(self):
      tk.Label(self.root, text="截图程序", font=("Helvetica", 16)).pack(pady=10)
      
      tk.Button(self.root, text="全屏截图", command=self.fullscreen_screenshot).pack(pady=5)
      
      tk.Label(self.root, text="指定尺寸截图", font=("Helvetica", 12)).pack()
      self.x_entry = tk.Entry(self.root)
      self.x_entry.pack(pady=5)
      self.y_entry = tk.Entry(self.root)
      self.y_entry.pack(pady=5)
      self.width_entry = tk.Entry(self.root)
      self.width_entry.pack(pady=5)
      self.height_entry = tk.Entry(self.root)
      self.height_entry.pack(pady=5)
      tk.Button(self.root, text="截图", command=self.custom_screenshot).pack(pady=5)
      
      tk.Label(self.root, text="滚动截图", font=("Helvetica", 12)).pack()
      self.scroll_x_entry = tk.Entry(self.root)
      self.scroll_x_entry.pack(pady=5)
      self.scroll_y_entry = tk.Entry(self.root)
      self.scroll_y_entry.pack(pady=5)
      self.scroll_distance_entry = tk.Entry(self.root)
      self.scroll_distance_entry.pack(pady=5)
      tk.Button(self.root, text="滚动截图", command=self.scroll_screenshot).pack(pady=5)

    def fullscreen_screenshot(self):
      screenshot = ImageGrab.grab()
      screenshot.save("fullscreen_screenshot.png")
      messagebox.showinfo("提示", "全屏截图已保存为fullscreen_screenshot.png")

    def custom_screenshot(self):
      try:
            x = int(self.x_entry.get())
            y = int(self.y_entry.get())
            width = int(self.width_entry.get())
            height = int(self.height_entry.get())
            screenshot = ImageGrab.grab(bbox=(x, y, x + width, y + height))
            screenshot.save("custom_screenshot.png")
            messagebox.showinfo("提示", "指定尺寸截图已保存为custom_screenshot.png")
      except ValueError:
            messagebox.showerror("错误", "请输入有效的整数")

    def scroll_screenshot(self):
      try:
            x = int(self.scroll_x_entry.get())
            y = int(self.scroll_y_entry.get())
            distance = int(self.scroll_distance_entry.get())

            # Perform multiple screenshots and combine them vertically
            screenshots = []
            current_y = y
            while current_y < y + distance:
                screenshot = ImageGrab.grab(bbox=(x, current_y, x + 800, current_y + 600))
                screenshots.append(screenshot)
                current_y += 600

            final_screenshot = Image.new("RGB", (800, distance))
            y_offset = 0
            for screenshot in screenshots:
                final_screenshot.paste(screenshot, (0, y_offset))
                y_offset += screenshot.height

            final_screenshot.save("scroll_screenshot.png")
            messagebox.showinfo("提示", "滚动截图已保存为scroll_screenshot.png")
      except ValueError:
            messagebox.showerror("错误", "请输入有效的整数")

if __name__ == "__main__":
    root = tk.Tk()
    app = ScreenshotApp(root)
    root.mainloop()
我编写的是一个比较简单的Tkinter,根据要求
可以选择全屏截图、指定尺寸截图和滚动截图
但是需要手动输入参数,得先手动输入一下截屏参数,然后程序会调用ImageGrab根据你输入的参数截屏
然后文件保存


甲鱼哥给过不?我能力是真的有限,我真比不了这里的任何人,要我编写,就只能这个
高阶的图形化程序,啥按钮,啥指定地点保存,咱是真做不到,我就是一个混娱乐圈的(吹水格),没啥本事,ε=(´ο`*)))唉

学习编程中的Ben 发表于 2023-8-3 19:25:33

我要接!!!

学习编程中的Ben 发表于 2023-8-3 19:39:13

设计思路:
实现GUI窗口:tkinter和ttkbootstrap
利用pyautogui的screenshot函数实现全屏和指定尺寸截屏,加上PIL实现滚动截屏
望通过!!!{:10_254:}
@不二如是

zhangjinxuan 发表于 2023-8-3 20:44:36

算法题才是我们的主场{:10_256:}

不会 Python 第三方库{:10_266:}

Mike_python小 发表于 2023-8-4 20:52:48

补充一下,程序会在windows右下角保留,右键可以打开设置

在编辑图片选项还可以实现提取文字https://fishc.com.cn/thread-222254-1-1.html这个就是我写的转文字文章

Ewan-Ahiouy 发表于 2023-8-7 09:36:56

中标了!{:10_257:}

Mike_python小 发表于 2023-8-7 09:56:48

Ewan-Ahiouy 发表于 2023-8-7 06:36
中标了!

{:10_257:}

Ewan-Ahiouy 发表于 2023-8-7 09:59:15

Mike_python小 发表于 2023-8-7 09:56


你可以领取乐于助人勋章里{:5_109:}

Mike_python小 发表于 2023-8-7 10:00:00

Ewan-Ahiouy 发表于 2023-8-7 06:59
你可以领取乐于助人勋章里

!!!

liuhongrun2022 发表于 2023-8-7 10:25:19

Mike_python小 发表于 2023-8-7 09:56


恭喜中标!

Mike_python小 发表于 2023-8-7 10:55:08

liuhongrun2022 发表于 2023-8-7 07:25
恭喜中标!

{:10_254:}

高山 发表于 2023-8-9 07:07:17

编程追风梦 发表于 2023-8-3 19:16
我编写的是一个比较简单的Tkinter,根据要求
可以选择全屏截图、指定尺寸截图和滚动截图
但是需要手动输 ...

GPT的能不要在这里么。小甲鱼在这求贤,人家不会用GPT啊
不同意楼主的看法,如果不是GPT,我真不相信你有这个水平

编程追风梦 发表于 2023-8-9 07:37:26

高山 发表于 2023-8-9 07:07
GPT的能不要在这里么。小甲鱼在这求贤,人家不会用GPT啊
不同意楼主的看法,如果不是GPT,我真不相信你 ...

我天,这伤害性不大,侮辱性极强,我不是啥都不会好吧,虽然框架是询问了GPT的,但是好歹代码不是(我希望不要有人跟我抬杠说什么小甲鱼要求的是框架,我抄袭框架编代码有屁用)

高山 发表于 2023-8-9 09:24:24

编程追风梦 发表于 2023-8-9 07:37
我天,这伤害性不大,侮辱性极强,我不是啥都不会好吧,虽然框架是询问了GPT的,但是好歹代码不是(我希 ...

不是我真不相信这是你写的
首先变量名,格式,注释都是专业的,第二我知道你也会转载,你看你的帖子大多数都是转载的
要么转载,要么GPT,或者是从哪里手把手教的

你知道小甲鱼已经进入开发阶段,不求贤了,你自己肯定不会白做的

编程追风梦 发表于 2023-8-9 11:13:35

高山 发表于 2023-8-9 09:24
不是我真不相信这是你写的
首先变量名,格式,注释都是专业的,第二我知道你也会转载,你看你的帖子大多 ...

所以我说框架,但是代码,细致的开发是我做的(我之所以转载,是因为..........我懒........懒得写,就比如游记,我宁愿让GPT写,但我现在在写了)

小甲鱼 发表于 2023-8-10 01:57:54

编程追风梦 发表于 2023-8-9 11:13
所以我说框架,但是代码,细致的开发是我做的(我之所以转载,是因为..........我懒........懒得写,就比 ...

可以借用 GPT,但给出的提纲和作品需要让人眼前一亮。

借助现代工具并没有问题,关键在于如何引导它帮助你开发出优秀的程序!

下次要加油哦,发挥想象力~

{:10_298:}



编程追风梦 发表于 2023-8-10 06:04:22

小甲鱼 发表于 2023-8-10 01:57
可以借用 GPT,但给出的提纲和作品需要让人眼前一亮。

借助现代工具并没有问题,关键在于如何引导它 ...

甲鱼哥什么时候出新视频?我在国外,看不到国内的更新,只能等待YouTub的山寨版(这都算敏感词?)小甲鱼更新{:10_266:}
页: [1] 2
查看完整版本: 【开发中】求贤令000:开发一个截图程序