国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Pygame 基礎(chǔ)教程02: 顯示窗口(display) 與 圖像(Surface)

這篇具有很好參考價(jià)值的文章主要介紹了Pygame 基礎(chǔ)教程02: 顯示窗口(display) 與 圖像(Surface)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

原文鏈接:https://xiets.blog.csdn.net/article/details/131382728

版權(quán)聲明:原創(chuàng)文章禁止轉(zhuǎn)載

專欄目錄:Pygame 專欄(總目錄)

1. 顯示窗口: display

pygame.display 模塊提供了對 pygame 顯示的控制??梢园?pygame.display 看做是包含了一個(gè) 系統(tǒng)窗口 的 顯示器屏幕。

pygame.display 模塊主要函數(shù):

# 設(shè)置顯示窗口的標(biāo)題
pygame.display.set_caption(title, icontitle=None)

# 設(shè)置顯示窗口的圖標(biāo)
pygame.display.set_icon(Surface)

# 初始化用于顯示的窗口或屏幕, 該函數(shù)將創(chuàng)建一個(gè)用于映射到系統(tǒng)窗口顯示的 Surface 圖像。
#
# size      顯示窗口的大小 (內(nèi)容窗口, 不包括標(biāo)題欄和邊框)
#
# flags     控制顯示類型, 可以用 位或|運(yùn)算 組合多種類型, 
#           flags 可取值:
#               pygame.FULLSCREEN       創(chuàng)建全屏顯示 create a fullscreen display
#               pygame.DOUBLEBUF        僅適用于OPENGL
#               pygame.HWSURFACE        在 pygame 2 已過時(shí)
#               pygame.OPENGL           創(chuàng)建 OpenGL 可渲染顯示
#               pygame.RESIZABLE        顯示窗口大小可變
#               pygame.NOFRAME          顯示窗口將沒有邊框或控件
#               pygame.SCALED           分辨率取決于桌面大小和圖形縮放
#               pygame.SHOWN            窗口以可見模式打開 (默認(rèn))
#               pygame.HIDDEN           窗口以隱藏模式打開
#
# display   窗口在哪個(gè)顯示器上顯示, 用于連接了多個(gè)顯示器的情況, 如果 get_num_displays() == 2, 則 display=1 表示窗口顯示在第2個(gè)顯示器上
#
# depth     顏色深度, 通常最好不要傳遞 depth 參數(shù), 它將默認(rèn)為系統(tǒng)的最佳和最快顏色深度
#
# vsync     通過將 vsync 參數(shù)設(shè)置為 1, 可以獲得具有垂直同步的顯示器, 但不能保證獲得
#
# 返回一個(gè)與窗口內(nèi)容區(qū)域綁定的 Surface 圖像對象, 之后在此圖像上的繪制, 在調(diào)用 update() 或 flip() 函數(shù)后, 將同步顯示在屏幕窗口上
#
pygame.display.set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0) -> Surface

# 更新屏幕顯示, 將 set_mode() 返回的 Surface圖像 中的內(nèi)容全部更新到顯示屏幕上
pygame.display.flip()

# 更新屏幕顯示, 只更新特定區(qū)域。如果沒有傳遞任何參數(shù), 則相當(dāng)于 flip(), 即 update() 相當(dāng)于 flip()。
pygame.display.update(rectangle=None)

pygame.display 模塊其他函數(shù):

pygame.display.init()                                   # 初始化顯示模塊, 當(dāng)調(diào)用 pygame.init() 時(shí)會(huì)自動(dòng)調(diào)用
pygame.display.quit()                                   # 關(guān)閉顯示模塊, 程序退出時(shí)自動(dòng)處理
pygame.display.get_init() -> bool                       # 如果顯示模塊已初始化, 則返回 True
pygame.display.get_active() -> bool                     # 當(dāng)前窗口的 Surface 在屏幕上處于活動(dòng)狀態(tài)時(shí)返回 True
pygame.display.get_caption() -> (title, icontitle)      # 獲取顯示窗口的標(biāo)題
pygame.display.get_surface() -> Surface                 # 獲取當(dāng)前窗口的 Surface, 即 set_mode() 返回的對象
pygame.display.get_num_displays() -> int                # 返回顯示器的數(shù)量
pygame.display.get_window_size() -> tuple               # 返回窗口或屏幕的大小, 即 set_mode() 返回的 Surface 大小, 如果使用了 pygame.SCALED, 可能和 set_mode() 返回的 Surface 大小不一樣
pygame.display.get_wm_info() -> dict                    # 獲取有關(guān)當(dāng)前窗口系統(tǒng)的信息

pygame.display.get_desktop_sizes() -> list                                      # 獲取激活狀態(tài)的顯示器分辨率大小
pygame.display.list_modes(depth=0, flags=pygame.FULLSCREEN, display=0) -> list  # 獲取可用的全屏模式列表

pygame.display.toggle_fullscreen() -> int                           # 在 窗口模式 和 全屏模式之 間切換顯示窗口

pygame.display.mode_ok(size, flags=0, depth=0, display=0) -> depth  # 為顯示模式選擇最佳顏色深度
pygame.display.iconify() -> bool                                    # 圖標(biāo)化顯示Surface
pygame.display.set_gamma(red, green=None, blue=None) -> bool        # 更改硬件伽馬斜坡
pygame.display.set_gamma_ramp(red, green, blue) -> bool             # 使用自定義查找更改硬件伽瑪斜坡

pygame.display.set_palette(palette=None)            # 設(shè)置顯示調(diào)色板

pygame.display.get_driver() -> str                  # 獲取 pygame 顯示后端的名稱
pygame.display.Info() -> VideoInfo                  # 創(chuàng)建視頻顯示信息對象

pygame.display.get_allow_screensaver() -> bool      # 返回是否允許運(yùn)行屏保
pygame.display.set_allow_screensaver(bool)          # 設(shè)置屏保是否可以運(yùn)行

pygame.display.gl_get_attribute(flag) -> value      # 獲取當(dāng)前顯示的 OpenGL 標(biāo)志的值
pygame.display.gl_set_attribute(flag, value)        # 請求顯示模式的 OpenGL 顯示屬性

2. 圖像: Surface

pygame.surface 模塊中主要有一個(gè) Surface 類型,并且導(dǎo)出到了 pygame 模塊中,可以直接使用 pygame.Surface。

在 Pygame 中 Surface 用于表示具有固定的分辨率和像素格式的、內(nèi)存中的一張圖像。比如本地圖片加載到內(nèi)存中后就得到一個(gè) Surface 對象。

調(diào)用 pygame.display.set_mode() 函數(shù)初始化顯示窗口,返回的就是一個(gè) Surface 對象,稱為 “顯示圖像” (display Surface)。顯示圖像 是 Pygame 中單獨(dú)的一個(gè) Surface,它包含在系統(tǒng)窗口中,如果是全屏模式則全屏運(yùn)行。顯示圖像(Surface) 與 屏幕中系統(tǒng)窗口的內(nèi)容區(qū)域相對應(yīng),可以把游戲內(nèi)容繪制到 顯示圖像 中,然后通過調(diào)用 pygame.display.update()pygame.display.flip() 函數(shù)把 顯示圖像 中的內(nèi)容更新到 屏幕上。

系統(tǒng)窗口 與 顯示圖像 的關(guān)系:

pygame.surface,Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐,python,pygame,游戲引擎,游戲程序

屏幕中的一個(gè)系統(tǒng)窗口,包括 窗口圖標(biāo)、窗口標(biāo)題、最小/最大化和關(guān)閉按鈕、窗口邊框、窗口內(nèi)容(還可以有菜單欄、工具欄、狀態(tài)欄等)。上圖中的紅色部分就是窗口的內(nèi)容區(qū)域,也就是 pygame.display.set_mode() 函數(shù)返回的 顯示圖像(Surface) 對應(yīng)的區(qū)域。除了 窗口內(nèi)容 外,其他都是操作系統(tǒng)部分,不同操作系統(tǒng)、不同系統(tǒng)主題,顯示的效果可能不一樣。

除了 set_mode() 返回的 Surface,程序中可以調(diào)用它的構(gòu)造方法,任意創(chuàng)建 Surface 對象。也可以把本地圖片加載為 Surface,可以通過字體模塊把任意文本渲染為 Surface。然后把自己創(chuàng)建的 Surface 通過 blit() 方法繪制到 set_mode() 返回的 顯示圖像(Surface) 中,再調(diào)用 update() 或 flip() 就能同步顯示在屏幕上了。

Surface 圖像坐標(biāo)系的原點(diǎn)在左上角,X 軸方向水平向右,Y 軸方向豎直向下:

pygame.surface,Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐,python,pygame,游戲引擎,游戲程序

pygame.Surface 類的主要方法:

# Surface 的構(gòu)造方法, 創(chuàng)建具有指定寬高的圖像, 默認(rèn)使用純黑色填充
# flags 附加標(biāo)志, 典型的標(biāo)志是: pygame.RLEACCEL, pygame.SRCALPHA (像素點(diǎn)包含alpha通道), pygame.SRCCOLORKEY
# depth 像素的顏色深度, 默認(rèn) Pygame 會(huì)使用最適合當(dāng)前系統(tǒng)的顏色深度。
pygame.Surface((width, height), flags=0, depth=0, masks=None) -> Surface
pygame.Surface((width, height), flags=0, Surface) -> Surface

# 獲取 Surface 的寬高尺寸
pygame.Surface.get_size() -> (width, height)
pygame.Surface.get_width() -> int
pygame.Surface.get_height() -> int

# 將 一個(gè)圖像(source) 繪制到 當(dāng)前圖像(self) 上, 繪制后超出當(dāng)前圖像部分將被忽略。
# dest 是一個(gè)坐標(biāo)二元組, 表示繪制的位置 (繪制后 source 的左上角在 self 上的坐標(biāo)位置)。
# dest 也可以是一個(gè) 四元祖(x, y, width, height) 或 Rect矩形區(qū)域, 如果是則只取 Rect.x 和 Rect.y 屬性作為繪制坐標(biāo)。
# 返回 繪制后 source 在 self 上的位置區(qū)域。
pygame.Surface.blit(source, dest, area=None, special_flags=0) -> Rect

# 將 多個(gè)圖像 繪制到 當(dāng)前圖像 上
pygame.Surface.blits(blit_sequence=((source, dest), ...), doreturn=1) -> [Rect, ...]
pygame.Surface.blits(((source, dest, area), ...)) -> [Rect, ...]
pygame.Surface.blits(((source, dest, area, special_flags), ...)) -> [Rect, ...]

# 用純色填充 Surface
pygame.Surface.fill(color, rect=None, special_flags=0) -> Rect

# 創(chuàng)建 Surface 的新副本
pygame.Surface.copy() -> Surface

# 更改圖像的像素格式(增加 alpha 通道), 包括每個(gè)像素的 alpha, 創(chuàng)建新副本
pygame.Surface.convert_alpha(Surface) -> Surface
pygame.Surface.convert_alpha() -> Surface

# 設(shè)置 Surface 圖像的整體 alpha 值。這里設(shè)置的 alpha 是與像素值無關(guān)的外置屬性, 不針對某個(gè)像素點(diǎn), 而是針對整體, 
# 最終顯示為具體像素點(diǎn)的 alpha 值和整體 alpha 值的組合效果。就算沒有通過 convert_alpha() 轉(zhuǎn)換為帶 alpha 通道的圖像, 也可以設(shè)置整體 alpha 值。 
pygame.Surface.set_alpha(value, flags=0)
pygame.Surface.set_alpha(None)
# 獲取當(dāng)前 Surface 圖像的整體 alpha 值
pygame.Surface.get_alpha() -> int

# 獲取單個(gè)像素的顏色值, 像素值無論是否有 alpha 通道, 均返回 (R, G, B, A)。如果沒有 alpha 通道, 則 A 固定為 255。
pygame.Surface.get_at((x, y)) -> Color
# 設(shè)置單個(gè)像素的顏色值, 可以以 "#RGBA" 或 (R, G, B, A) 的形式設(shè)置。如果參數(shù)格式中沒有 A, 則 A 默認(rèn)為 255。如果沒有 alpha 通道, 則 A 將被忽略。
pygame.Surface.set_at((x, y), Color)

# 創(chuàng)建一個(gè)引用其父級的新 Surface (獲取 Surface 的某個(gè)區(qū)域, 相當(dāng)于圖像裁剪)
# 返回的是原 Surface 的一個(gè)區(qū)域視圖, 不是副本 (如果需要副本, 可以再調(diào)用 copy() 方法), 因此在原圖像上的改變會(huì)反應(yīng)在返回的視圖上。
pygame.Surface.subsurface(Rect) -> Surface

pygame.Surface 類的其他方法:

pygame.Surface.convert(Surface=None) -> Surface         # 更改圖像的像素格式, 創(chuàng)建新副本
pygame.Surface.convert(depth, flags=0) -> Surface
pygame.Surface.convert(masks, flags=0) -> Surface

pygame.Surface.lock()                                   # 鎖定 Surface 內(nèi)存以進(jìn)行像素訪問
pygame.Surface.unlock()                                 # 通過像素訪問解鎖 Surface 內(nèi)存
pygame.Surface.mustlock() -> bool                       # 判斷 Surface 是否需要鎖定
pygame.Surface.get_locked() -> bool                     # 判斷 Surface 當(dāng)前是否鎖定
pygame.Surface.get_locks() -> tuple                     # 獲取 Surface 的鎖

pygame.Surface.set_colorkey(Color, flags=0)             # 設(shè)置透明色鍵
pygame.Surface.get_colorkey() -> RGB | None             # 獲取當(dāng)前透明色鍵
pygame.Surface.get_at_mapped((x, y)) -> Color           # 獲取單個(gè)像素的映射顏色值
pygame.Surface.get_palette() -> [RGB, RGB, RGB, ...]    # 獲取 8 位 Surface 的顏色索引調(diào)色板
pygame.Surface.get_palette_at(index) -> RGB             # 獲取調(diào)色板中單個(gè)條目的顏色
pygame.Surface.set_palette([RGB, RGB, RGB, ...])        # 為 8 位 Surface 設(shè)置調(diào)色板
pygame.Surface.set_palette_at(index, RGB)               # 在 8 位 Surface 調(diào)色板中設(shè)置單個(gè)索引的顏色
pygame.Surface.map_rgb(Color) -> mapped_int             # 將顏色轉(zhuǎn)換為映射顏色值
pygame.Surface.unmap_rgb(mapped_int) -> Color           # 將映射的整數(shù)顏色值轉(zhuǎn)換為 Color
pygame.Surface.set_clip(rect|None)                      # 設(shè)置 Surface 的當(dāng)前裁剪區(qū)域
pygame.Surface.get_clip() -> Rect                       # 獲取 Surface 當(dāng)前的裁剪區(qū)域
pygame.Surface.scroll((dx=0, dy=0))                     # 將圖像向右移動(dòng) dx 像素, 向下移動(dòng) dy 像素 (dx 和 dy 可以是負(fù)值)

pygame.Surface.get_parent() -> Surface                  # 找到子 Surface 的父級
pygame.Surface.get_abs_parent() -> Surface              # 找到子 Surface 的頂級父級
pygame.Surface.get_offset() -> (x, y)                   # 找到父子 Surface 下子 Surface 的位置
pygame.Surface.get_abs_offset() -> (x, y)               # 找到子 Surface 在其頂級父 Surface 內(nèi)的絕對位置

pygame.Surface.get_rect() -> Rect                       # 獲取 Surface 的矩形區(qū)域, 返回 Rect(0, 0, width, height)
pygame.Surface.get_bitsize() -> int                     # 獲取 Surface 像素格式的位深度
pygame.Surface.get_bytesize() -> int                    # 獲取 Surface 每個(gè)像素點(diǎn)使用的字節(jié)數(shù), RGB 格式的圖像為 3, RGBA 格式的圖像為 4
pygame.Surface.get_flags() -> int                       # 獲取用于 Surface 的附加標(biāo)志
pygame.Surface.get_pitch() -> int                       # 獲取每個(gè) Surface 行使用的字節(jié)數(shù), 等價(jià)于 width * get_bytesize()
pygame.Surface.get_masks() -> (R, G, B, A)              # 在顏色和映射整數(shù)之間轉(zhuǎn)換所需的位掩碼
pygame.Surface.set_masks((R, G, B, A))                  # 設(shè)置在顏色和映射整數(shù)之間轉(zhuǎn)換所需的位掩碼
pygame.Surface.get_shifts() -> (R, G, B, A)             # 在顏色和映射整數(shù)之間轉(zhuǎn)換所需的位移位
pygame.Surface.set_shifts((R, G, B, A))                 # 設(shè)置在顏色和映射整數(shù)之間轉(zhuǎn)換所需的位移位
pygame.Surface.get_losses() -> (R, G, B, A)             # 用于在顏色和映射整數(shù)之間轉(zhuǎn)換的有效位
pygame.Surface.get_bounding_rect(min_alpha=1) -> Rect   # 找到包含數(shù)據(jù)的最小矩形
pygame.Surface.get_view(<kind>="2") -> BufferProxy      # 返回 Surface 像素的緩沖區(qū)視圖
pygame.Surface.get_buffer() -> BufferProxy              # 為 Surface 的像素獲取緩沖區(qū)對象
pygame.Surface._pixels_address: int                     # (屬性) 像素緩沖區(qū)地址
pygame.Surface.premul_alpha() -> Surface                # 返回 Surface 的副本, 其中 RGB 通道預(yù)乘以 alpha 通道

3. display 與 Surface 代碼示例

下面是兩個(gè)用于演示的示例圖片:

pygame.surface,Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐,python,pygame,游戲引擎,游戲程序pygame.surface,Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐,python,pygame,游戲引擎,游戲程序

把上面兩個(gè)圖片保存到本地,放在與 py 源碼文件相同目錄下,并命名為 duck.pngfloor.png

display 與 surface 代碼示例:

import pygame


def main():
    # 初始化 pygame
    pygame.init()

    # 設(shè)置系統(tǒng)窗口標(biāo)題
    pygame.display.set_caption("display 與 Surface")

    # 加載本地圖片 (圖片文件 與 當(dāng)前py文件 在相同路徑), 返回的是 Surface 對象
    duck_img = pygame.image.load("duck.png")
    print(type(duck_img), duck_img)
    # Output: <class 'pygame.surface.Surface'> <Surface(80x80x32 SW)>
    # 其中 80x80x32 表示 duck_img 的寬高為 80x80, 顏色模式為 32 位顏色

    # 設(shè)置系統(tǒng)窗口圖標(biāo), 把一個(gè) Surface 圖像設(shè)置為系統(tǒng)窗口圖標(biāo)
    pygame.display.set_icon(duck_img)

    # 初始化顯示窗口, 返回一個(gè)與窗口內(nèi)容區(qū)域綁定的 Surface 對象 (顯示圖像)
    # 因?yàn)榇?Surface 與屏幕窗口關(guān)聯(lián), 所以一般命名為 screen 或 display_surface
    screen = pygame.display.set_mode((400, 300))
    print(type(screen), screen)                 # Output: <class 'pygame.surface.Surface'> <Surface(400x300x32 SW)>

    # 加載本地圖片
    floor_img = pygame.image.load("floor.png")

    # 裁剪圖像, 創(chuàng)建 floor_img 左上角 100x100 的矩形視圖區(qū)域, 返回的是 Surface 對象
    sub_img = floor_img.subsurface((0, 0, 100, 100))
    print(type(sub_img), sub_img)               # Output: <class 'pygame.surface.Surface'> <Surface(100x100x32 SW)>

    # 游戲主循環(huán)
    while True:
        # QUIT 退出事件判斷
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                # 退出 pygame
                pygame.quit()
                return

        # 先填充背景顏色
        screen.fill("#CCCCCC")

        # 把 duck_img 繪制到 screen 圖像中, 繪制后 duck_img 的左上角在 screen 的 (50, 50) 坐標(biāo)位置
        screen.blit(duck_img, (50, 50))

        # 把 floor_img 繪制到 screen 圖像的底部中間
        screen.blit(floor_img, (screen.get_width() / 2 - floor_img.get_width() / 2, screen.get_height() - floor_img.get_height()))

        # 把 sub_img 繪制到 screen 的 (230, 30) 位置
        screen.blit(sub_img, (230, 30))

        # 把 screen 圖形中的內(nèi)容更新到屏幕窗口
        pygame.display.flip()


if __name__ == "__main__":
    main()

pygame.image.load() 函數(shù)加載圖片,傳遞的參數(shù)是圖片文件的本地路徑。在任意編程語言中,路徑可以使用 相對路徑絕對路徑 表示,例如 duck.pngimage/duck.png 都是一個(gè)相對路徑,D:\image\duck.png/image/duck.png 是一個(gè)絕對路徑。相對路徑相對于程序當(dāng)前的工作目錄,Python 中可以調(diào)用 os.getcwd() 獲取當(dāng)前工作路徑。如果初學(xué)者搞不清楚相對路徑或提示文件找不到,可以先直接使用絕對路徑,例如:r"D:\image\duck.png""D:/image/duck.png"。

在源碼文件所在路徑,運(yùn)行代碼:

pygame.surface,Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐,python,pygame,游戲引擎,游戲程序文章來源地址http://www.zghlxwxcb.cn/news/detail-721516.html

到了這里,關(guān)于Pygame 基礎(chǔ)教程02: 顯示窗口(display) 與 圖像(Surface)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python報(bào)錯(cuò):argument 1 must be pygame.surface.Surface, not builtin_function_or_method解決方法

    python報(bào)錯(cuò):argument 1 must be pygame.surface.Surface, not builtin_function_or_method解決方法

    1、報(bào)錯(cuò)分析 : 根據(jù)報(bào)錯(cuò)信息,提示我們出錯(cuò)的原因在與第一個(gè)參數(shù)類型必須是pygame類型,但是我們的參數(shù)類型不匹配。 2、源碼分析 這里的方法blit()中的第一個(gè)參數(shù)是STATICSURF,一個(gè)全局常量。根據(jù)報(bào)錯(cuò)我們知道是它出了問題。我們找到這個(gè)參數(shù)的賦值代碼。 3、STATICSURF參數(shù)

    2024年02月12日
    瀏覽(18)
  • 【課程介紹】OpenCV 基礎(chǔ)入門教程:圖像讀取、顯示、保存,圖像處理和增強(qiáng)(如濾波、邊緣檢測、圖像變換),特征提取和匹配,目標(biāo)檢測和跟蹤

    [ 專欄推薦 ] ?? 《視覺探索: OpenCV 基礎(chǔ)入門教程》 ?? ??【簡介】: Opencv 入門課程適合初學(xué)者,旨在介紹 Opencv 庫的基礎(chǔ)知識(shí)和核心功能。課程包括圖像讀取、顯示、保存,圖像處理和增強(qiáng)(如濾波、邊緣檢測、圖像變換),特征提取和匹配,目標(biāo)檢測和跟蹤等內(nèi)容。學(xué)

    2024年02月16日
    瀏覽(2471)
  • MATLAB不顯示figure繪圖窗口但保存圖像的方案

    MATLAB不顯示figure繪圖窗口但保存圖像的方案,代碼如下: figure的參數(shù)選項(xiàng)及含義如下: Name : 設(shè)置 Figure 窗口的標(biāo)題。 NumberTitle : 控制是否顯示 Figure 窗口的序號和標(biāo)題。 Color : 設(shè)置 Figure 窗口的背景顏色。 Position : 設(shè)置 Figure 窗口在屏幕上的位置和大小。 Visible : 控制 Figure 窗

    2024年02月11日
    瀏覽(23)
  • pygame入門教程-基礎(chǔ)篇

    我們先啟動(dòng)一個(gè)窗口 我們通過 screen = pygame.display.set_mode((800,600)) 設(shè)置了一個(gè)窗口,并且返回了一個(gè) screen 的變量,這個(gè)變量的類型是 pygame.Surface ,也就是一個(gè)畫布。我們基于這個(gè)畫布來作畫,例如加載一個(gè)圖片到這個(gè)畫布上,或者繪制一個(gè)圓。 我們發(fā)現(xiàn)這個(gè)窗口一閃而過,

    2023年04月08日
    瀏覽(19)
  • 基于WPF Opencv實(shí)現(xiàn)一個(gè)圖像可移動(dòng)、縮放和可交互的顯示窗口

    基于WPF Opencv實(shí)現(xiàn)一個(gè)圖像可移動(dòng)、縮放和可交互的顯示窗口

    學(xué)習(xí)Halcon的HSmartWindowControl窗口控件,用WPF和Opencv仿照了一個(gè)。 顯示控件的主體是兩個(gè)Canvas: Root Canvas是背景,刷上了網(wǎng)格; 把要顯示的圖像作為Image Canvas的圖像背景, 后面圖像的移動(dòng),縮放,實(shí)質(zhì)都是Image Canvas。 可交互,學(xué)習(xí)的是Halcon的繪圖對象,WPF的Path來實(shí)現(xiàn)的,Path類

    2023年04月09日
    瀏覽(66)
  • 可視可交互!在全志H618上用OpenCV讀取圖像顯示到PyQt5窗口上

    可視可交互!在全志H618上用OpenCV讀取圖像顯示到PyQt5窗口上

    OpenCV能夠處理圖像、視頻、深度圖像等各種類型的視覺數(shù)據(jù),在某些情況下,盡管OpenCV可以顯示窗口,但PyQt5可能更適合用于創(chuàng)建復(fù)雜的交互式應(yīng)用程序,而自帶GPU的H618就成為了這些圖像顯示的最佳載體。 這里分享一個(gè)代碼,功能是使用圖像處理庫opencv從攝像頭獲取數(shù)據(jù),縮

    2024年02月01日
    瀏覽(25)
  • Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐(總目錄)

    Python Pygame 游戲開發(fā)基礎(chǔ)教程與項(xiàng)目實(shí)踐(總目錄)

    原文鏈接:https://xiets.blog.csdn.net/article/details/131368147 版權(quán)聲明:原創(chuàng)文章禁止轉(zhuǎn)載 Pygame 是一個(gè)免費(fèi)的開源的跨平臺(tái)庫(支持 Windows、MacOS、Linux),用于使用 Python 開發(fā)視頻游戲等多媒體應(yīng)用程序。 Pygame 基礎(chǔ)教程01: Python (Pygame) 游戲開發(fā)模塊簡介與安裝 Pygame 基礎(chǔ)教程02: 顯示

    2024年02月14日
    瀏覽(57)
  • Android 顯示框架:Surface詳解之一

    Android 顯示框架:Surface詳解之一

    Surface是一個(gè)顯示系統(tǒng)中的組件,無論是在圖形系統(tǒng)的結(jié)構(gòu)之中,還是在生產(chǎn)消費(fèi)模型的流程之中都做作為一個(gè)舉足輕重的角色,參與整個(gè)安卓的顯示生命周期之中。 我們摘抄了兩段谷歌對surface的描述作為貫穿整個(gè)文章的中心: 1.A surface is an interface for a producer to exchange buff

    2024年02月07日
    瀏覽(17)
  • 【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。...

    【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。...

    這段代碼是使用C++和OpenCV庫編寫的圖像處理程序,其主要功能是 調(diào)整圖像的亮度和對比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。 用戶可以通過界面上的滑動(dòng)條來動(dòng)態(tài)地調(diào)整亮度和對比度參數(shù)從而觀察到圖像即時(shí)的變化效果。程序首先讀取并顯示一個(gè)灰度圖像

    2024年04月10日
    瀏覽(28)
  • Pygame 基礎(chǔ)教程12: 使用 精靈(Sprite) 實(shí)現(xiàn) 幀動(dòng)畫(Animation)

    原文鏈接:https://xiets.blog.csdn.net/article/details/131395288 版權(quán)聲明:原創(chuàng)文章禁止轉(zhuǎn)載 專欄目錄:Pygame 專欄(總目錄) 精靈(Sprite) 表示游戲畫面中基本的顯示元素,前面所介紹的精靈雖然位置可以動(dòng)態(tài)移動(dòng),但都是一張靜態(tài)圖片。游戲中還有許多動(dòng)態(tài)的動(dòng)畫精靈,如一只飛翔的

    2024年01月17日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包