鱼C论坛

 找回密码
 立即注册
查看: 2939|回复: 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版:
# 程序目标

开发要求:

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

开发语言:

Python

预期实现:

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

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

使用道具 举报

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

使用道具 举报

发表于 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根据你输入的参数截屏
然后文件保存


甲鱼哥给过不?我能力是真的有限,我真比不了这里的任何人,要我编写,就只能这个
高阶的图形化程序,啥按钮,啥指定地点保存,咱是真做不到,我就是一个混娱乐圈的(吹水格),没啥本事,ε=(&#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-12-25 21:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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