Pygame Transformによる画像モーフィングの実装例
2022-01-27 07:58:18
pygame.transformモジュールでは、以下の一般的なメソッドに示すように、ロードして作成した画像に対して、画像のサイズ変更、回転など、さまざまな操作を行うことができます。
ここでは、簡単なデモを紹介します。
import pygame
# Introduce all constants in pygame, such as QUIT
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((500,250))
pygame.display.set_caption('c language Chinese')
# load an image (455*191)
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png").convert()
image_new = pygame.transform.scale(image_surface,(300,300))
# View the object type of the newly generated image
# print(type(image_new))
# Rotate the newly generated image to 45 degrees
image_1 = pygame.transform.rotate(image_new,45)
# Rotate by 0 degrees using rotozoom() to shrink the image by 0.5 times
image_2 = pygame.transform.rotozoom(image_1,0,0.5)
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
# Add the last generated image_2 to the display screen
screen.blit(image_2,(0,0))
pygame.display.update()
実装例
import pygame
pygame.init()
screen = pygame.display.set_mode((960, 600))
pygame.display.set_caption("image_transform")
img = pygame.image.load('horse.jpg')
clock = pygame.time.Clock()
img1 = pygame.transform.flip(img,False, True) # image to be flipped horizontally and vertically
#parameter1: the image to be flipped
#parameter2: whether to flip horizontally or not
#Parameter 3: whether to flip vertically or not
#return a new image
while True:
t = clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
screen.blit(img1,(100,50))
pygame.display.update()
img1 = pygame.transform.scale(img, (200, 100)) #scale
#parameter2: width and height of the new image
img1 = pygame.transform.smoothscale(img,(400,300)) #smoothscale image
#This function only works with 24-bit or 32-bit surfaces. If the input surface bit depth is less than 24, an exception is thrown
img1 = pygame.transform.scale2x(img) # fast double size zoom
img = pygame.image.load('horse.jpg')
img1 = pygame.transform.rotate(img, 30) # rotate the image
#parameter 2: angle to rotate - positive number means counterclockwise - negative number means clockwise
# Unless rotated in 90 degree increments, the image will be padded to a larger size. If the image has pixel alpha, the filled area will be transparent
#rotation is around the center
img1 = pygame.transform.rotozoom(img, 30.0, 2.0) #scale+rotate
#The first parameter specifies the image to be processed, the second parameter specifies the number of angles to rotate, and the third parameter specifies the scale of the zoom
#This function will filter the image, the image will be better, but will be much slower
img1 = pygame.transform.chop(img, (0, 0, 100, 50)) #Crop the image
#The first parameter specifies the image to crop, and the second parameter specifies the area of the image to keep
img = pygame.image.load('horse.jpg')
img1 = pygame.transform.laplacian(img) # find the edge - outline
上記はPygame Transformの画像変換の実装例の詳細ですが、Pygame Transformの画像変換については、スクリプトハウスの他の関連記事にも注目してください!
関連
-
[解決済み】Python名'os'が定義されていません【重複
-
[解決済み】Spyderエディタの背景をダークに変更するには?
-
Python辞書ループ RuntimeError: 反復中に辞書のサイズが変更されたエラー解析
-
[解決済み] 変動係数とNumPy
-
[解決済み] scikit-learnで独自のscorer関数を作成/カスタマイズする方法とは?
-
[解決済み] sqlalchemy の `sum`, `average`, `min`, `max` の簡単な例です。
-
[解決済み] AttributeError: 'tuple' オブジェクトには 'shape' という属性がありません。
-
[解決済み] TypeError: 1つの必須位置引数がありません: 'self'
-
[解決済み] (Tensorflow-GPU) import tensorflow ImportError: cudnn64_7.dll' が見つかりませんでした。
-
AttributeError: モジュール 'wordcloud' には属性 'WordCloud' がありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み】 list["a", "b", "c"] を反復処理する際に "'type' object has no attribute '__getitem__'" というエラーが発生した。]
-
[解決済み】super(type, obj): objはtypeのインスタンスまたはサブタイプでなければなりません。
-
[解決済み] pipが壊れました。DistributionNotFoundエラーを修正するには?
-
[解決済み] そのようなファイルまたはディレクトリはありません:'/usr/local/bin/pip'
-
[解決済み] ヘビーサイドのステップ関数は存在するか?
-
[解決済み] TypeError: キャラクタバッファオブジェクトが必要です。
-
Python 3.6: "Guess the Number Game" TypeError: '<' は 'str' と 'int' のインスタンスの間でサポートされていません。