linux下bmp转化成jpg并计时统计

本文介绍了一个用于批量将BMP格式图片转换为JPG格式的Shell脚本,并记录了转换过程的时间消耗及文件大小变化。该脚本利用cjpeg工具完成格式转换,并通过shell命令实现了自动化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脚本如下:

#!/bin/sh
  rm -f bmp2jpg.statics

  find bmps/* > bmps_list__

for fold in $(cat bmps_list__)
  do
         fnew=$(echo $fold | sed -e "s/bmp/jpg/g")
         echo "--------------------------------------" >> bmp2jpg.statics
         echo "time cjpeg -outfile $fnew $fold " >> bmp2jpg.statics
         echo " " >> bmp2jpg.statics
         (time cjpeg -outfile $fnew $fold) 2>> bmp2jpg.statics
     #  echo "--------------------------------------" >> bmp2jpg.statics
       du -sh $fold >> bmp2jpg.statics
       du -sh $fnew >> bmp2jpg.statics
       echo " " >> bmp2jpg.statics
done
rm -f bmps_list__

  cjpeg 把bmp转化成jpg
  djpeg 把jpg转化成bmp

imagemagick 不能在bmp与jpg直接转化,需要先转化到其他形式

部分结果如下:(bmp2jpg.statics中节选)

--------------------------------------
time cjpeg -outfile jpgs/03_04PU100.jpg bmps/03_04PU100.bmp
 

real 0m0.115s
user 0m0.072s
sys 0m0.020s
2.7M bmps/03_04PU100.bmp
152K jpgs/03_04PU100.jpg
 
--------------------------------------
time cjpeg -outfile jpgs/03_04PU101.jpg bmps/03_04PU101.bmp
 

real 0m0.154s
user 0m0.100s
sys 0m0.056s
2.7M bmps/03_04PU101.bmp
108K jpgs/03_04PU101.jpg
 
--------------------------------------
time cjpeg -outfile jpgs/03_04PU102.jpg bmps/03_04PU102.bmp
 

real 0m0.105s
user 0m0.076s
sys 0m0.024s
2.7M bmps/03_04PU102.bmp
184K jpgs/03_04PU102.jpg

import pyautogui import pyperclip import time import os import random import logging # 配置日志记录 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', handlers=[logging.FileHandler('wechat_emoji.log'), logging.StreamHandler()] ) def send_emojis(emoji_folder, count=10, interval=0.5): """增强版表情包发送函数""" try: # 1. 验证表情包文件夹 if not os.path.exists(emoji_folder): raise FileNotFoundError(f"表情包文件夹不存在: {emoji_folder}") # 2. 获取有效表情包文件 valid_ext = ('.png', '.jpg', '.jpeg', '.gif', '.bmp') emoji_files = [f for f in os.listdir(emoji_folder) if f.lower().endswith(valid_ext)] if not emoji_files: raise ValueError("文件夹中没有找到有效表情包文件") # 3. 窗口切换检测 logging.info("请在10秒内切换到微信聊天窗口确保输入框激活...") for i in range(10, 0, -1): logging.info(f"倒计时: {i}秒") time.sleep(1) # 4. 获取当前鼠标位置作为参考点 original_pos = pyautogui.position() # 5. 发送表情包 sent_count = 0 for i in range(count): try: # 随机选择表情包 emoji_file = random.choice(emoji_files) emoji_path = os.path.join(emoji_folder, emoji_file) # 验证文件存在 if not os.path.exists(emoji_path): logging.warning(f"文件不存在: {emoji_path}") continue # 复制文件路径 pyperclip.copy(emoji_path) time.sleep(0.1) # 剪贴板延迟 # 粘贴发送 pyautogui.hotkey('ctrl', 'v') time.sleep(max(0.1, interval / 2)) # 确保粘贴完成 # 发送前验证输入框内容 pyautogui.press('enter') sent_count += 1 logging.info(f"已发送: {emoji_file} ({i + 1}/{count})") # 随机延迟防止检测 time.sleep(interval + random.uniform(-0.1, 0.1)) except Exception as e: logging.error(f"发送失败: {str(e)}") # 恢复鼠标位置 pyautogui.moveTo(original_pos.x, original_pos.y) time.sleep(1) return sent_count except Exception as e: logging.critical(f"程序异常终止: {str(e)}") return 0 if __name__ == "__main__": try: # 配置参数 emoji_dir = r'D:\wechat_emojis' # 修改为你的表情包路径 total_count = 1 interval = 0.4 # 安全间隔 print(f"准备发送 {total_count} 个表情包...") success_count = send_emojis(emoji_dir, count=total_count, interval=interval) print(f"操作完成! 成功发送 {success_count}/{total_count} 个表情包") except KeyboardInterrupt: print("\n用户中断操作") finally: # 安全恢复措施 pyautogui.moveTo(100, 100) pyautogui.alert("微信表情发送程序已结束") 为什么出来结果是这个D:\wechat_emojis\奥特曼.png
最新发布
08-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值