首页 > 编程语言 >[Python] 使用PIL生成指定格式指定大小的测试图

[Python] 使用PIL生成指定格式指定大小的测试图

时间:2024-12-17 11:22:17浏览次数:6  
标签:PIL Python random 指定 height width np

使用PIL和numpy生成指定格式指定大小的图片,1GB以内已测试正常。

from PIL import Image
import numpy as np

# 指定目标图片最小体积
target_size_mb = 10
# 每个像素包含3个字节(RGB通道),计算需要的总像素数
bytes_per_pixel = 3  # RGB
total_pixels = (target_size_mb * 1024 * 1024) // bytes_per_pixel

# 假设生成接近正方形的图片,计算宽和高
width = int(total_pixels**0.5)
height = total_pixels // width

# 使用NumPy生成随机像素数据
random_data = np.random.randint(0, 256, (height, width, 3), dtype=np.uint8)
#random_data = np.tile(np.arange(256, dtype=np.uint8).reshape(1, -1, 1), (height, width // 256 + 1, 3))[:height, :width]

# 创建图片对象
image = Image.fromarray(random_data, 'RGB')

# 保存图片到文件
output_file = "large_image.png"
image.save(output_file, format="PNG") #BMP JPG GIF PDF

print(f"图片已生成,尺寸:{width}x{height},保存为:{output_file}")

标签:PIL,Python,random,指定,height,width,np
From: https://www.cnblogs.com/alfredsun/p/18611915

相关文章

  • SSM高校社团学生会管理系统--47676(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP
    摘  要本论文基于SSM框架,设计和实现了一个高校社团学生会管理系统。该系统旨在提供一个全面、高效、智能的高校社团学生会管理平台,以便管理者可以迅速且便捷地进行各项管理工作,并及时向社团成员提供准确的社团信息。  该系统通过角色划分为社团成员、社团社长和管理员......
  • Python递归
    1.首先是基础的:计算正整数阶层函数接受一个参数n,如果n等于0,则返回1否则,函数会调用自身,并将参数n-1传递给递归调用的函数,直到n等于0时停止递归。每次递归调用时,函数会将当前的n与递归调用的结果相乘,最终返回最终的结果。2.案例:斐波拉契数列首先先了解什么是斐波拉契数列?......
  • Python-基于Pygame的小游戏(坦克大战-1.0(世界))(一)
    前言:创作背景-《坦克大战》是一款经典的平面射击游戏,最初由日本游戏公司南梦宫于1985年在任天堂FC平台上推出。游戏的主题围绕坦克战斗,玩家的任务是保卫自己的基地,同时摧毁所有敌人的坦克。游戏中有多种地形和敌人类型,玩家可以通过获取道具来强化坦克和基地。此外,游戏还支持......
  • Python实现银杏树绘制与效果展示
    银杏树,因其形态优美、叶片独特而被人们喜爱。银杏的叶子呈扇形,秋天时叶片呈现出金黄的色彩,成为秋季的代表之一。今天,我们将使用Python的turtle库来绘制一棵具有银杏树......
  • GanZhiDate类 实现干支历和公历互换 For Python
    GanZhiDate说明在python上运行的,实现干支历和公历互换的类,包括了1949年到2099年的节气数据。GanZhiDate用法实例化一个GanZhiDate对象fromganzhidateimportGanZhiDategan_zhi_date=GanZhiDate(3,3,9,h=0,year=2000)print(gan_zhi_date)#庚辰年戊寅月丙申......
  • 如何用python批量转换.doc文件为.docx文件
    需要用到的库:pywin32、os 实现效果:把文件夹下的文件1.doc、2.doc、3.doc转化成1.docx、2.docx、3.docx,保存到output文件夹下。代码运行前: 代码运行后:  实现代码: #批量把".doc"文件另存在".docx"文件importosfromwin32comimportclientdefdoc_to_docx(p,......
  • python语言匹配链接下载代码
    importrequestsimportreimportostext=“”“”“”使用正确的正则表达式模式,这里的模式匹配以http或https开头,后面跟着任意字符直到.ebt结尾的字符串pattern=r’(https://res.doc88.com.*?))’ebt_urls=re.findall(pattern,text)#print(ebt_url......
  • python 语音转文字
    支持被压缩的wav,缺点是准确率低 importjsonimportwavefromvoskimportModel,KaldiRecognizerfrompydubimportAudioSegmentfrompydub.utilsimportmake_chunksdefrecognize_wave(model,file_path):print(111)#打开WAV音频文件withwave.open(file_pa......
  • 如何在 Ubuntu 20.04 或 22.04 上安装 Python 3
    以下是关于如何在Ubuntu20.04或22.04上安装Python3的详细步骤。Python是一种广泛使用的编程语言,适用于自动化、数据分析、机器学习等领域。Ubuntu系统通常预装了Python3,但如果需要安装或升级到最新版本,可以按照以下方法操作。检查系统是否已安装Python3打......
  • Python+OpenCV系列:AI看图识人、识车、识万物
    在人工智能风靡全球的今天,用Python和OpenCV结合机器学习实现物体识别,不仅是酷炫技能,更是掌握未来的敲门砖。本篇博文手把手教你如何通过摄像头或图片输入,识别人、动物、车辆及其他物品,让你的程序瞬间具备AI能力。一、什么是物体识别?物体识别是计算机视觉中的关键任......