欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Color類與文字繪制零基礎(chǔ)掌握

 更新時(shí)間:2022年08月05日 15:30:31   作者:acktomas  
這篇文章主要介紹了Python Color類與文字繪制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

視頻

觀看視頻

pygame.Color

Pygame 中用于描述顏色的對(duì)象。

Color(name) -> Color,例如:Color("gray")

Color(r, g, b, a) -> Color,例如:Color(190, 190, 190, 255)

Color(rgbvalue) -> Color,例如:Color("#BEBEBEFF")

w3schools顏色選擇器,選擇任何你想要的顏色,你可以在這里找到它

Pygame 使用 Color 類表示 RGBA 顏色值,每個(gè)顏色值的取值范圍是 0 ~ 255。當(dāng)沒有給出 alpha 的值時(shí),默認(rèn)是 255(不透明)

“RGB值”可以是一個(gè)顏色名,一個(gè) HTML 顏色格式的字符串,一個(gè) 16 進(jìn)制數(shù)的字符串,或者一個(gè)整型像素值。HTML 格式是 #rrggbbaa,其中 “rr”,“gg”,“bb”,“aa” 都是 2 位的 16 進(jìn)制數(shù)。代表 alpha 的 “aa” 是可選的。16 進(jìn)制數(shù)的字符串組成形式為 0xrrggbbaa,當(dāng)然,其中的 “aa” 也是可選的

下列程序可以列出pygame預(yù)定義的顏色

from pprint import pprint
import pygame as pg
pprint(pg.color.THECOLORS)

方法&屬性

pygame.Color.r — 獲取或設(shè)置 Color 對(duì)象的紅色值

pygame.Color.g — 獲取或設(shè)置 Color 對(duì)象的綠色值

pygame.Color.b — 獲取或設(shè)置 Color 對(duì)象的藍(lán)色值

pygame.Color.a — 獲取或設(shè)置 Color 對(duì)象的 alpha 值,透明度

pygame.Color.cmy — 獲取或設(shè)置 Color 對(duì)象表示的 CMY 值

pygame.Color.hsva — 獲取或設(shè)置 Color 對(duì)象表示的 HSVA 值

pygame.Color.hsla — 獲取或設(shè)置 Color 對(duì)象表示的 HSLA 值

pygame.Color.i1i2i3 — 獲取或設(shè)置 Color 對(duì)象表示的 I1I2I3 值

pygame.Color.normalize() — 返回 Color 對(duì)象的標(biāo)準(zhǔn)化 RGBA 值

pygame.Color.correct_gamma() — 應(yīng)用一定的伽馬值調(diào)整 Color 對(duì)象

pygame.Color.set_length() — 設(shè)置 Color 對(duì)象的長(zhǎng)度(成員數(shù)量)

示例

讓窗口的背景不斷變化

import pygame, sys
pygame.init()
screen_size = 640, 480
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption("pygame顏色")
GOLD = (255,251,0)
RED = pygame.Color('red')
WHITE = (255, 255, 255)
GREEN = pygame.Color('green')
color_list = [GOLD,RED,WHITE,GREEN]
fclock = pygame.time.Clock()
running = True
i = 0
while running:
	fclock.tick(1)
	for e in pygame.event.get():
		if e.type == pygame.QUIT:
			running = False
	i = i + 1
	i = 0 if i > 3 else i
	screen.fill(color_list[i])
	pygame.display.flip()
pygame.quit()

Rect對(duì)象與Surface對(duì)象區(qū)別

pygame.Surface表示繪制層、或繪圖平面、或圖層,用于表示圖層、文字或圖像的繪制效果,如果不繪制在主圖層上,則不會(huì)被顯示。

pygame.display.set_mode()生成主圖層,是一個(gè)Surface對(duì)象,在主圖層上繪制其它圖層使用blit()方法

pygame.draw繪制圖形后,返回一個(gè)矩形Rect類表示形狀,

pygame.Rect表達(dá)一個(gè)矩形區(qū)域的類,Pygame利用Rect類來操作圖形、圖像、文字等信息。對(duì)應(yīng)于當(dāng)前主圖層的某個(gè)區(qū)域,指定圖層繪制的矩形區(qū)域。

文字的繪制

系統(tǒng)字體所在位置:

復(fù)制微軟雅黑到“fonts”文件夾

pygame.freetype類:向屏幕上繪制特定字體的文字,文字不能直接用print(), 而是用像素根據(jù)字體點(diǎn)陣圖繪制

pygame 包在加載時(shí)不會(huì)自動(dòng)導(dǎo)入freetype。必須顯式導(dǎo)入此模塊才能使用。

import pygame
import pygame.freetype

pygame 1.9.2 中的新功能:freetype

常用的方法

1. pygame.freetype.Font

從支持的字體文件創(chuàng)建一個(gè)新的Font實(shí)例。

Font(file, size=0, font_index=0, resolution=0, ucs4=False) -> Font

參數(shù):

file可以是表示字體文件名的字符串,包含字體的類文件對(duì)象,也可以是None;如果為None,則使用默認(rèn)的Pygame字體。

(可選)可以指定size參數(shù)來設(shè)置文字的默認(rèn)大小,這決定了渲染字符的大小。大小也可以顯式傳遞給每個(gè)方法調(diào)用。由于緩存系統(tǒng)的工作方式,在構(gòu)造函數(shù)上指定默認(rèn)大小并不意味著在每次函數(shù)調(diào)用上手動(dòng)傳遞大小都會(huì)帶來性能提升。如果字體是位圖并且沒有給出大小,則默認(rèn)大小設(shè)置為字體的第一個(gè)可用大小。

2. pygame.freetype.Font.render()

將渲染文本作為surface返回

render(text, fgcolor=None, bgcolor=None, style=STYLE_DEFAULT, rotation=0, size=0) -> (Surface, Rect)

返回一個(gè)新的Surface,文本以’fgcolor’給出的顏色呈現(xiàn)給它。如果沒有給出前景色,則使用默認(rèn)前景色fgcolor。如果給出bgcolor,Surface將用這種顏色填充。

返回值是一個(gè)元組:新Surface和邊界矩形給出渲染文本的大小和原點(diǎn)。

如果為文本傳遞空字符串,則返回的Rect為零寬度和字體高度。

3. pygame.freetype.Font.render_to() 將文本渲染到現(xiàn)有surface上 render_to(surf, dest, text, fgcolor=None, bgcolor=None, style=STYLE_DEFAULT, rotation=0, size=0) -> Rect 將字符串文本呈現(xiàn)給pygame.Surface對(duì)象,位于dest,(x,y)表面坐標(biāo)對(duì)。如果x或y不是整數(shù),則盡可能將其轉(zhuǎn)換為整數(shù)。接受前兩個(gè)項(xiàng)是x和y位置元素的任何序列,包括Rect實(shí)例。與render()一樣,可以選擇fgcolor,style,rotation和size參數(shù)。

def word_wrap(surf, text, font, color=(0, 0, 0)):
    font.origin = True
    words = text.split(' ')
    width, height = surf.get_size()
    line_spacing = font.get_sized_height() + 2
    x, y = 0, line_spacing
    space = font.get_rect(' ')
    for word in words:
        bounds = font.get_rect(word)
        if x + bounds.width + bounds.x >= width:
            x, y = 0, y + line_spacing
        if x + bounds.width + bounds.x >= width:
            raise ValueError("word too wide for the surface")
        if y + bounds.height - bounds.y >= height:
            raise ValueError("text to long for the surface")
        font.render_to(surf, (x, y), None, color)
        x += bounds.width + space.width
return x, y

文字版的小球游戲

import pygame, sys
import pygame.freetype
pygame.init()
size = screen_width, screen_height = 640, 480
screen = pygame.display.set_mode(size)
pygame.display.set_caption('文字游戲')
BLACK = pygame.Color('black')
GOLD = (255,251,0)
font1 = pygame.freetype.Font("C://Windows//Fonts//msyh.ttc", 28)
font_surface,font_rect = font1.render("小小工坊", fgcolor=GOLD, size=50)
pos = [screen_width // 2, screen_height // 2]
speed = [1,1]
fps = 60
fclock = pygame.time.Clock()
while True:
	fclock.tick(fps)
	for e in pygame.event.get():
		if e.type == pygame.QUIT:
			sys.exit()
	if pos[0] < 0 or pos[0] + font_rect.width > screen_width:
		speed[0] = -speed[0]
	if pos[1] < 0 or pos[1] + font_rect.height > screen_height:
		speed[1] = -speed[1]
	pos[0] = pos[0] + speed[0]
	pos[1] = pos[1] + speed[1]
	screen.fill(BLACK)
	screen.blit(font_surface,(pos[0],pos[1]))
	pygame.display.update()

到此這篇關(guān)于Python Color類與文字繪制零基礎(chǔ)掌握的文章就介紹到這了,更多相關(guān)Python Color類與文字繪制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文詳解Python中實(shí)現(xiàn)單例模式的幾種常見方式

    一文詳解Python中實(shí)現(xiàn)單例模式的幾種常見方式

    這篇文章主要為大家介紹了Python中實(shí)現(xiàn)單例模式的幾種常見方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 純python實(shí)現(xiàn)機(jī)器學(xué)習(xí)之kNN算法示例

    純python實(shí)現(xiàn)機(jī)器學(xué)習(xí)之kNN算法示例

    本篇文章主要介紹了純python實(shí)現(xiàn)機(jī)器學(xué)習(xí)之kNN算法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • pip?install如何指定包的安裝路徑

    pip?install如何指定包的安裝路徑

    最近學(xué)習(xí)python需要用pip下載一些包,但是發(fā)現(xiàn)下載后在pycharm中根本導(dǎo)入不了,下面這篇文章主要給大家介紹了關(guān)于pip?install如何指定包的安裝路徑的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • OpenCV 邊緣檢測(cè)

    OpenCV 邊緣檢測(cè)

    OpenCV提供了許多邊緣檢測(cè)濾波函數(shù),這些濾波函數(shù)都會(huì)將非邊緣區(qū)域轉(zhuǎn)為黑色,將邊緣區(qū)域轉(zhuǎn)為白色或其他飽和的顏色。這篇文章主要介紹了OpenCV 邊緣檢測(cè),需要的朋友可以參考下
    2019-07-07
  • pymysql的安裝以及操作實(shí)戰(zhàn)指南

    pymysql的安裝以及操作實(shí)戰(zhàn)指南

    這篇文章主要給大家介紹了關(guān)于pymysql的安裝以及操作的相關(guān)資料,pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Python利用redis-py實(shí)現(xiàn)哈希數(shù)據(jù)類型的常用指令操作

    Python利用redis-py實(shí)現(xiàn)哈希數(shù)據(jù)類型的常用指令操作

    這篇文章我們繼續(xù)學(xué)習(xí) “redis-py” 模塊的一些關(guān)于 “哈希數(shù)據(jù)類型” 的相關(guān)指令用方法,比如利用 pyton 實(shí)現(xiàn)操作 “哈希表” 的數(shù)據(jù)、操作 “redis” 的事務(wù)等等
    2022-09-09
  • 使用python繪制人人網(wǎng)好友關(guān)系圖示例

    使用python繪制人人網(wǎng)好友關(guān)系圖示例

    這篇文章主要介紹了使用python繪制人人網(wǎng)好友關(guān)系圖示例,需要的朋友可以參考下
    2014-04-04
  • python語音識(shí)別whisper的使用

    python語音識(shí)別whisper的使用

    本文主要介紹了python語音識(shí)別whisper的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 使用 Python 實(shí)現(xiàn)微信消息的一鍵已讀的思路代碼

    使用 Python 實(shí)現(xiàn)微信消息的一鍵已讀的思路代碼

    利用python可以實(shí)現(xiàn)微信消息的一鍵已讀功能,怎么實(shí)現(xiàn)呢?你肯定會(huì)想著很復(fù)雜,但是python的好處就是很多人已經(jīng)把接口打包做好了,只需要調(diào)用即可,今天通過本文給大家分享使用 Python 實(shí)現(xiàn)微信消息的一鍵已讀的思路代碼,一起看看吧
    2021-06-06
  • Python netmiko模塊的使用

    Python netmiko模塊的使用

    這篇文章主要介紹了Python netmiko模塊的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論