Automatically Naming the Screenshots to Steam

news/2025/9/22 21:24:09/文章来源:https://www.cnblogs.com/kion/p/19106069

Automatically Naming the Screenshots to Steam

The Problem

I want to upload my own screenshot to steam, but I found that the methods I found are a bit tedious.

Steam expects screenshots to follow a specific naming convention in its screenshot and thumnails folders:

YYYYMMDDHHMMSS_N.jpg

Where:

  • YYYYMMDDHHMMSS is the timestamp
  • N is a sequence number
  • .jpg is the required file format

Solution

I wrote a Python script to automate this process

import os
import shutil
from PIL import Image
from datetime import datetimedef copy_images(source_folder, destination_folder, resize_thumbnails=True, thumbnail_size=(200, 125)):"""Copy all image files from source folder to destination folder with timestamp-based naming.Optionally create thumbnails in a subfolder.Args:source_folder (str): Path to source folder containing imagesdestination_folder (str): Path to destination folderresize_thumbnails (bool): Whether to create thumbnailsthumbnail_size (tuple): Size for thumbnails if enabled"""image_extensions = ('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff')os.makedirs(destination_folder, exist_ok=True)if resize_thumbnails:thumbnails_folder = os.path.join(destination_folder, 'thumbnails')os.makedirs(thumbnails_folder, exist_ok=True)copied_files = 0sequence_number = 1  # Starting sequence number# Get current timestamp in YYYYMMDDHHMMSS formattimestamp = datetime.now().strftime("%Y%m%d%H%M%S")for filename in os.listdir(source_folder):if filename.lower().endswith(image_extensions):source_path = os.path.join(source_folder, filename)try:new_filename = f"{timestamp}_{sequence_number}.jpg"destination_path = os.path.join(destination_folder, new_filename)with Image.open(source_path) as img:if img.mode in ('RGBA', 'P'):img = img.convert('RGB')img.save(destination_path, 'JPEG', quality=95)copied_files += 1print(f"Saved: {new_filename}")if resize_thumbnails:thumbnail_path = os.path.join(thumbnails_folder, new_filename)thumb = img.copy()thumb.thumbnail(thumbnail_size)thumb.save(thumbnail_path, 'JPEG', quality=90)print(f"Created thumbnail: {new_filename}")sequence_number += 1except Exception as e:print(f"Error processing {filename}: {str(e)}")print(f"\nDone! Saved {copied_files} images to {destination_folder}")if resize_thumbnails:print(f"Created thumbnails in {thumbnails_folder}")if __name__ == "__main__":# Example usagesource = "C:\\Users\\miyas\\Pictures\\VRChat\\SELECT" # change to your pathdestination = "X:\\steam\\userdata\\861267303\\760\\remote\\438100\\screenshots" # change to your pathcopy_images(source, destination, resize_thumbnails=True)

How to Use the Script

  1. Install Requirements:

    pip install pillow
    
  2. Edit the Paths:

    • Change source to your screenshot folder
    • Change destination to your Steam screenshots folder (usually in steam/userdata/[yourID]/760/remote/[appID]/screenshots)
  3. Run the Script:

    python upload.py
    

    After the process done, restart steam and you will see the customized pictures in the screenshot manager.

Key Features

  1. Automatic Timestamping: Uses current time for proper Steam format
  2. Format Conversion: Converts all images to JPG automatically
  3. Thumbnail Generation: Creates 200x125 thumbnails in a subfolder

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

穷举法(c语言版)

我们的日常生活中,经常会遇到一些需要解决的小问题,这些问题可能并不需要复杂的算法,但是如果我们能够运用穷举算法的思想,就能够轻松地找到问题的答案。本文将介绍穷举算法的基本思想,并通过程序示例来深入了解它…

ZYNQ PS 端 UART 接收数据素材帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发

ZYNQ PS 端 UART 接收数据素材帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

01 Tasking IDE软件安装及新建工程

01 Tasking IDE软件安装及新建工程1.Tasking简介 Tasking IDE是由Altium公司开发的一款专注于嵌入式系统开发的集成开发环境(IDE),特别适合于英飞凌(Infineon)微控制器的开发作。官方网址:https://www.tasking.c…

义乌网站推广学院网站建设目的与意义

1、你的真心很珍贵,别再不值得的人身上卑微 ,爱应该是让你笑的开怀,而不是哭的崩溃。爱必须是温情的依赖,而不是冷漠的伤害。想要找你的人走遍了全世界也能找到你,等到了年华老去也会等着你。 2、大冬天的时候给你送吃…

寻找网站建设员广州网站建设专注乐云seo

基于WIN10的64位系统演示 一、写在前面 本期开始,我们继续学习深度学习图像目标检测系列,SSD(Single Shot MultiBox Detector)模型。 二、SSD简介 SSD(Single Shot MultiBox Detector)是一种流行的目标检…

做花茶网站解说大庆市住房和城乡建设局网站

该知识领域涉及如下考点,具体内容分布于如下各个子章节: 理解安全并将其融入软件开发生命周期 (SDLC) 中在软件开发环境中识别和应用安全控制评估软件安全的有效性评估获得软件对安全的影响定义并应用安全编码准则和标准 6.1. 系统开发控制 6.1.1. 软…

网站支付链接怎么做张家港网页设计培训

同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。 安装好mysql后&#x…

河北邢台解封了吗seo网络优化师招聘

1、说说 Redis 都有哪些应用场景?缓存:这应该是 Redis 最主要的功能了,也是大型网站必备机制,合理地使用缓存不仅可以加 快数据的访问速度,而且能够有效地降低后端数据源的压力。共享Session:对于一些依赖 …

百度site app网站添加到网站首页源文件中的代码是哪些?网站新类型

人脸对比 人脸对比,顾名思义,就是对比两个人脸的相似度。本文将用Paddle实现这一功能。 PS:作者肝了整整3天才稍微搞明白实现方法 数据集准备 这里使用百度AI Studio的开源数据集: 人脸数据_数据集-飞桨AI Studio星河社区 (b…

上海做网站的多吗wordpress小说站数据库

队列(Queue) 在Python的queue模块中,Queue类是一个线程安全的队列实现,用于在多线程编程中安全地交换信息。它遵循先入先出(FIFO)的原则。Queue类提供了几种主要的方法: put(item): 将一个项目…

详细介绍:深入理解Kafka事务

详细介绍:深入理解Kafka事务pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

能碳园区 / 工厂系统 - 智慧园区

智慧能碳园区 / 工厂:能碳协同驱动的低碳高效运营新范式 在 “双碳” 目标与产业数字化深度融合的背景下,智慧能碳园区 / 工厂已成为企业绿色转型的核心载体 —— 它并非 “智慧能源” 与 “碳管理” 的简单叠加,而…

郑州网站推广营销wordpress 修改邮箱

我们做接口测试时候,会发现通常需要测试的接口类型有好几种,比较多的是http类型的接口,其他还有webservice接口,rpc接口等等,本次主要说下http类型的接口我们该怎么测试,还有该测试哪些东西。HTTP接口概念:…

上海工程建设执业资格注册中心网站网站建设排名北京

在计算机科学的世界里,排序是一项基本而重要的操作。无论是数据库管理、搜索引擎,还是日常编程,高效的排序算法都是提高性能的关键。本文将介绍四种基本的排序算法:冒泡排序、选择排序、插入排序和快速排序,并探讨它们…

有什么免费开发网站建设软件有哪些做外贸有哪些好的网站有哪些

java8根据某个id删选Java 8带有新的Optional类型,类似于其他语言中可用的类型。 这篇文章将介绍这种新类型的使用方式,即主要用途。 什么是可选类型? 可选的是新容器类型,如果有可用值,则该容器类型将包装单个值。 因…

汕头网站优化公司沈阳电商网站建设

本章主要讲解微信公众号自定义菜单、微信网页开发、模板消息推送等功能的实现;发福利了,下方关注公众号,就能免费获取项目源码1、自定义菜单开发前需要了解以下几点:1、微信公众号的自定义菜单最多包括3个一级菜单,每个…

深圳网站建设与设计制作笑话小网站模板html

它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 4) 5 - 6 就是中缀表达式- 3 4 …

dell公司网站设计特色石油 技术支持 东莞网站建设

上篇文章介绍了如何利用pyhook模块监听鼠标键盘的事件,接下来如果需要通过监听的事件内容,来做对应的操作,需要对event的内容进行相应的判断。 如果仅仅通过event.key来进行判断,可以写成str(evnet.key) F12等,如果需…

佛山网站开发公司秦皇岛微信公众号

2019双11,支付宝参战的第十一年。 与十一年前相比,双11的许多东西都改变了。比如金额——2684亿,差不多是十一年前的5000倍;比如流量——订单峰值54.4万笔/秒,曾经是想都不敢想的数字;再比如层出不穷的新技…