Pygame编程(8)image模块

Pygame编程(8)image模块

  • 函数
  • 示例

函数

  • pygame.image.load
    • 从文件(或类似文件的对象)加载新图像
    • load(filename) -> Surface
    • load(fileobj, namehint=“”) -> Surface
  • pygame.image.save
    • 将图像保存到文件(或类似文件的对象)
    • save(Surface, filename) -> None
    • save(Surface, fileobj, namehint=“”) -> None
  • pygame.image.get_sdl_image_version
    • 获取正在使用的SDL_Image库的版本号
    • get_sdl_image_version(linked=True) -> None
    • get_sdl_image_version(linked=True) -> (major, minor, patch)
  • pygame.image.get_extended
    • 测试是否可以加载扩展图像格式
    • get_extended() -> bool
  • pygame.image.tostring
    • 将图像转换为字符串数据
    • tostring(Surface, format, flipped=False) -> bytes
    • format:
      • P, 8-bit palettized Surfaces
      • RGB, 24-bit image
      • RGBX, 32-bit image with unused space
      • RGBA, 32-bit image with an alpha channel
      • ARGB, 32-bit image with alpha channel first
      • BGRA, 32-bit image with alpha channel, red and blue channels swapped
      • RGBA_PREMULT, 32-bit image with colors scaled by alpha channel
      • ARGB_PREMULT, 32-bit image with colors scaled by alpha channel, alpha channel first
  • pygame.image.tobytes
    • 将图像转换为字节数据
    • tobytes(Surface, format, flipped=False) -> bytes
    • format:
      • P, 8-bit palettized Surfaces
      • RGB, 24-bit image
      • RGBX, 32-bit image with unused space
      • RGBA, 32-bit image with an alpha channel
      • ARGB, 32-bit image with alpha channel first
      • BGRA, 32-bit image with alpha channel, red and blue channels swapped
      • RGBA_PREMULT, 32-bit image with colors scaled by alpha channel
      • ARGB_PREMULT, 32-bit image with colors scaled by alpha channel, alpha channel first
  • pygame.image.fromstring
    • 从字符串数据创建一个图像
    • fromstring(bytes, size, format, flipped=False) -> Surface
  • pygame.image.frombytes
    • 从字节数据创建一个图像
    • frombytes(bytes, size, format, flipped=False) -> Surface
  • pygame.image.frombuffer
    • 从缓冲区数据创建一个图像
    • frombuffer(buffer, size, format) -> Surface
    • format:
      • P, 8-bit palettized Surfaces
      • RGB, 24-bit image
      • BGR, 24-bit image, red and blue channels swapped.
      • RGBX, 32-bit image with unused space
      • RGBA, 32-bit image with an alpha channel
      • ARGB, 32-bit image with alpha channel first
      • BGRA, 32-bit image with alpha channel, red and blue channels swapped
  • pygame.image.load_basic
    • 从文件(或类似文件的对象)加载新的 BMP 图像
    • load_basic(file) -> Surface
  • pygame.image.save_extended
    • 将 PNG/JPG 图像保存到文件(或类似文件的对象)
    • load_extended(filename) -> Surface
    • load_extended(fileobj, namehint=“”) -> Surface

示例

import sys
import pygame
from pygame.locals import *pygame.init()clock = pygame.time.Clock()screen = pygame.display.set_mode((800, 600))extended = pygame.image.get_extended()
print('extended:', extended)sdl_version = pygame.image.get_sdl_image_version()
print('sdl_version:',sdl_version)# 窗口填充为白色
screen.fill((255, 255, 255))icon_up = pygame.image.load('D:/project/python/resource/opencv/image/19.png')
icon_down = pygame.image.load('D:/project/python/resource/opencv/image/24.png')
bmp_1 = pygame.image.load_basic('D:/project/python/resource/opencv/image/flipit_tokens.25x50x16.bmp')# 显示图像
screen.blit(icon_up, (100, 100))
screen.blit(icon_down, (200, 100))
screen.blit(bmp_1, (300, 100))# 保存图像
pygame.image.save(icon_up, 'new.png')
pygame.image.save_extended(icon_up, 'new_extend.png')# 图像数据转换
icon_bytes = pygame.image.tobytes(icon_up, 'RGB')
# print(icon_bytes)icon_strings = pygame.image.tostring(icon_up, 'RGB')
# print(icon_strings)def main():gameExit = Falsewhile not gameExit:for event in pygame.event.get():if event.type == QUIT:gameExit = Truepygame.display.flip()# pygame.display.update()clock.tick(30)if __name__ == '__main__':main()
pygame.quit()
sys.exit()

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

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

相关文章

基于 Alpine 环境源码构建 alibaba-tengine(阿里巴巴)的 Docker 镜像

About Alpine(简介) Alpine Linux 是一款极其轻量级的 Linux 发行版,基于 busybox,多被当做 Docker 镜像的底包(基础镜像),在使用容器时或多或少都会接触到此系统,本篇文章我们以该镜…

Pydev·离线git包

Pydev离线git包 1.下载离线git包:eclipse.egit.repository-4.4.0.201606070830-r.zip 2.将解压后目录:eclipse.egit.repository-4.4.0.201606070830-r\plugins下的jar文件放到 ide\eclipse\plugins目录下 3.重启pydevIDE 百度搜索站长工具:h…

head 请求了解过吗?如何用 get 模拟 head 请求?不需要服务器返回数据,怎么实现?

HEAD请求是HTTP/1.1协议中定义的一个请求方法,与GET请求相似,但只请求目标URL的头部,不请求实际的数据或者说正文内容。其主要用途是: 检查资源是否存在。获取资源的元数据(如响应头中的Content-Length或Last-Modifie…

Spring集成【MyBatis】和【PageHelper分页插件】整合---详细介绍

一,spring集成Mybatis的概念 Spring 整合 MyBatis 是将 MyBatis 数据访问框架与 Spring 框架进行集成,以实现更便捷的开发和管理。在集成过程中,Spring 提供了许多特性和功能,如依赖注入、声明式事务管理、AOP 等 它所带来给我们的…

校对的力量:当专业遇上细节,文字焕发新生

在这个信息爆炸的时代,文字成为了我们传达思想、展现形象的重要工具。从新闻稿、政府材料到商业文档,其背后的准确性和专业性往往决定了信息传递的效果。而保证这一切的,就是细致入微的校对工作。 1.错别字与校对:细节之美 错别字…

go web框架 gin-gonic源码解读03————middleware

go web框架 gin-gonic源码解读03————middleware(context) 今天打完游戏有空整理整理之前看的gin的中间件设计,go的中间件设计相较于前两站还是蛮简单,蛮容易看懂的,所以顺便把context也一起写一下。 中间件是现在w…

开源全球地理空间数据可视化框架——Cesium学习(2023.8.21)

Cesium学习 2023.8.21 1、Cesium简介1.1 Github上的Cesium 2、Cesium下载安装使用2.1 方式一:页面在线引用2.2 方式二:页面离线使用2.3 方式三:完整项目使用 3、CesiumJS学习教程(快速上手 API文档)3、Cesium官方示例…

Python 读写 Excel 文件库推荐和使用教程

文章目录 前言Python 读写 Excel 库简介openpyxl 处理 Excel 文件教程pandas 处理 Excel 文件教程总结 前言 Python 读写 Excel 文件的库总体看还是很多的, 各有其优缺点, 以下用一图总结各库的优缺点, 同时对整体友好的库重点介绍其使用教程…

java中多个list怎么用List表示?

如果你有多个List对象,想要将它们合并成一个List对象,可以使用addAll()方法来实现。addAll()方法将会把一个List中的元素逐个添加到另一个List中。 以下是一个示例,展示了如何将多个List对象合并为一个List对象: import java.ut…

vue离线缓存资源文件

本文章主要是解决大文件,实时请求资源浪费网络资源的问题 从而有效的将解决用户体验的问题 话不多说上才艺 ⬇️⬇️⬇️⬇️⬇️⬇️⬇️ 找到项目中的 index.html 文件,并在 html 标签中加入 manifest"manifest.appcache" 安装 appcache-manifest 包 npm ins…

【NPM】包的指令

npm 安装的包可以根据其用途和作用进行分类,一般可以分为以下几种类型: 普通依赖(Regular Dependencies): 这些是你项目中的实际依赖项,用于构建、运行或扩展你的应用程序。这些依赖会被包含在你的应用程序…

c++ qt--信号与槽(二) (第四部分)

c qt–信号与槽(二) (第四部分) 信号与槽的关系 1.一对一 2.一对多 3.多对一 4.多对多 还可以进行传递 信号->信号->槽 一个信号控制多个槽的例子(通过水平滑块控制两个组件) 1.应用的组件 注意这里最下面的组件进行…

【Qt学习】06:事件与事件过滤器

OVERVIEW 事件与事件过滤器一、事件1.鼠标事件创建子类MyLabel重写鼠标事件提升Label控件为MyLabel 2.定时器事件timerEventQTimer 3.事件分发器(event函数)event函数重写event函数深入 二、事件过滤器1.事件过滤器2.事件处理的五个层次 事件与事件过滤器…

Tomcat和Servlet基础知识的讲解(JavaEE初阶系列16)

目录 前言: 1.Tomcat 1.1Tomcat是什么 1.2下载安装 2.Servlet 2.1什么是Servlet 2.2使用Servlet来编写一个“hello world” 1.2.1创建项目(Maven) 1.2.2引入依赖(Servlet) 1.2.3创建目录(webapp&a…

VR法治警示教育:情景式课堂增强教育效果

VR法治警示教育平台是一款基于虚拟现实技术的在线教育平台,旨在通过模拟真实场景和互动体验,向公众普及法律知识,提高公民的法律意识和素养。该平台采用先进的虚拟现实技术,将用户带入一个逼真的仿真环境,让用户身临其…

python systemrdl 使用实例

今天来看一个具体实例,上一篇传送门:python SystemRDL 包介绍_Bug_Killer_Master的博客-CSDN博客 通常来说,我们验证过程用到的情况大多都是需要提取reg field的路径以及reset 值等信息,所以比较常见的一种方法就是先把rdl compil…

计算机网络文件拆分—视频流加载、断点续传

视频流加载 视频流加载的原理是通过网络传输和播放器解码来实现的。 首先,视频文件会被分成一系列小的数据包,通常是以流的形式传输,这些数据包通过网络传输到用户设备。在传输过程中,可以采用各种协议,如HTTP、RTSP…

简析SCTP开发指南

目录 前言一、SCTP基本概念二、SCTP开发步骤1. **环境配置**:2. **建立Socket**:3. **绑定和监听**:4. **接收和发送数据**:5. **关闭连接**: 三、 C语言实现SCTP3.1SCTP客户端代码:3.2 SCTP服务器端代码&a…

识别图片中的文字

前言 PearOCR 是一款免费无限制网页版文字识别工具。 优点如下: 免费:完全免费,没有任何次数、大小限制,可以无限使用; 安全:全部数据本地运算,所有图片均不会被上传; 智能&#xf…

SQL注入之HTTP头部注入

文章目录 cookie注入练习获取数据库名称获取版本号 base64注入练习获取数据库名称获取版本号 user-agent注入练习获取数据库名称获取版本号 cookie注入练习 向服务器传参三大基本方法:GPC GET方法,参数在URL中 POST,参数在body中 COOKIE,参数…