鱼C论坛

 找回密码
 立即注册
查看: 1067|回复: 27

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

[复制链接]
发表于 2023-8-3 03:36:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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


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

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

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

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

开发要求:

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


竞标阶段:

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

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



开发阶段:

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

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

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-3 19:48:44 | 显示全部楼层
md版:

  1. # 程序目标

  2. 开发要求:

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

  7. 开发语言:

  8. Python

  9. 预期实现:

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


复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 17:58:56 | 显示全部楼层
图片好像看不见,我传附件把 未命名绘图.drawio.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-3 19:16:47 | 显示全部楼层
  1. import tkinter as tk
  2. from tkinter import messagebox
  3. from PIL import ImageGrab

  4. class ScreenshotApp:
  5.     def __init__(self, root):
  6.         self.root = root
  7.         self.root.title("截图程序")
  8.         self.root.geometry("300x200")
  9.         
  10.         self.create_widgets()

  11.     def create_widgets(self):
  12.         tk.Label(self.root, text="截图程序", font=("Helvetica", 16)).pack(pady=10)
  13.         
  14.         tk.Button(self.root, text="全屏截图", command=self.fullscreen_screenshot).pack(pady=5)
  15.         
  16.         tk.Label(self.root, text="指定尺寸截图", font=("Helvetica", 12)).pack()
  17.         self.x_entry = tk.Entry(self.root)
  18.         self.x_entry.pack(pady=5)
  19.         self.y_entry = tk.Entry(self.root)
  20.         self.y_entry.pack(pady=5)
  21.         self.width_entry = tk.Entry(self.root)
  22.         self.width_entry.pack(pady=5)
  23.         self.height_entry = tk.Entry(self.root)
  24.         self.height_entry.pack(pady=5)
  25.         tk.Button(self.root, text="截图", command=self.custom_screenshot).pack(pady=5)
  26.         
  27.         tk.Label(self.root, text="滚动截图", font=("Helvetica", 12)).pack()
  28.         self.scroll_x_entry = tk.Entry(self.root)
  29.         self.scroll_x_entry.pack(pady=5)
  30.         self.scroll_y_entry = tk.Entry(self.root)
  31.         self.scroll_y_entry.pack(pady=5)
  32.         self.scroll_distance_entry = tk.Entry(self.root)
  33.         self.scroll_distance_entry.pack(pady=5)
  34.         tk.Button(self.root, text="滚动截图", command=self.scroll_screenshot).pack(pady=5)

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

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

  50.     def scroll_screenshot(self):
  51.         try:
  52.             x = int(self.scroll_x_entry.get())
  53.             y = int(self.scroll_y_entry.get())
  54.             distance = int(self.scroll_distance_entry.get())

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

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

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

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


甲鱼哥给过不?我能力是真的有限,我真比不了这里的任何人,要我编写,就只能这个
高阶的图形化程序,啥按钮,啥指定地点保存,咱是真做不到,我就是一个混娱乐圈的(吹水格),没啥本事,ε=(&#180;ο`*)))唉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-3 19:25:33 | 显示全部楼层
我要接!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-3 19:39:13 | 显示全部楼层
设计思路:
实现GUI窗口:tkinter和ttkbootstrap
利用pyautogui的screenshot函数实现全屏和指定尺寸截屏,加上PIL实现滚动截屏
望通过!!!
@不二如是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-3 20:44:36 | 显示全部楼层
算法题才是我们的主场

不会 Python 第三方库
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-4 20:52:48 | 显示全部楼层
补充一下,程序会在windows右下角保留,右键可以打开设置

在编辑图片选项还可以实现提取文字https://fishc.com.cn/thread-222254-1-1.html这个就是我写的转文字文章
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 09:36:56 | 显示全部楼层
中标了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 09:56:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 09:59:15 | 显示全部楼层

你可以领取乐于助人勋章里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 10:00:00 | 显示全部楼层
Ewan-Ahiouy 发表于 2023-8-7 06:59
你可以领取乐于助人勋章里

!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 10:25:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 10:55:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

GPT的能不要在这里么。小甲鱼在这求贤,人家不会用GPT啊
不同意楼主的看法,如果不是GPT,我真不相信你有这个水平
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我天,这伤害性不大,侮辱性极强,我不是啥都不会好吧,虽然框架是询问了GPT的,但是好歹代码不是(我希望不要有人跟我抬杠说什么小甲鱼要求的是框架,我抄袭框架编代码有屁用)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

你知道小甲鱼已经进入开发阶段,不求贤了,你自己肯定不会白做的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

所以我说框架,但是代码,细致的开发是我做的(我之所以转载,是因为..........我懒........懒得写,就比如游记,我宁愿让GPT写,但我现在在写了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-10 01:57:54 | 显示全部楼层
编程追风梦 发表于 2023-8-9 11:13
所以我说框架,但是代码,细致的开发是我做的(我之所以转载,是因为..........我懒........懒得写,就比 ...


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

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

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





评分

参与人数 1荣誉 +1 收起 理由
编程追风梦 + 1 OK^o^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-8-10 06:04:22 | 显示全部楼层
小甲鱼 发表于 2023-8-10 01:57
可以借用 GPT,但给出的提纲和作品需要让人眼前一亮。

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

甲鱼哥什么时候出新视频?我在国外,看不到国内的更新,只能等待YouTub的山寨版(这都算敏感词?)小甲鱼更新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 10:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表