4

画像を回転させ、エッジを滑らかに保ちたいと思います。

こんな感じです

元の画像

そして回転後

回転した画像

私が使用しているコードは次のようになります

def rot_center(self, image, angle):
   """rotate an image while keeping its center and size"""
   orig_rect = image.get_rect()
   rot_image = pygame.transform.rotate(image, angle)
   rot_rect = orig_rect.copy()
   rot_rect.center = rot_image.get_rect().center
   rot_image = rot_image.subsurface(rot_rect).copy()
   return rot_image

私が間違っていることはありますか?

4

3 に答える 3

6

スケールでpygame.transform.rotozoomを使用してみてください1.。フィルタリングされていると表示されています。これは AA を意味すると思います。

于 2012-11-07T21:23:40.847 に答える
1

ロトズームの問題は、画像のエッジがすべての外側部分ではなく長方形に接触する場所です。つまり、たとえば、船がある場合、くぼんだエッジはきれいに見えますが、広い部分だけにエイリアシングの問題があります。私はPhotoshopに行き、私のPNGファイルを2ピクセルずつ拡大することでそれを修正することができました(あなたの画像によっては、異なる倍率を試してみる必要があるかもしれません)。色付きのピクセル) は、回転中に画像の長方形に触れません。

于 2016-05-02T22:52:46.410 に答える
0

ただし、Rotozoom はサーフェスのエッジを滑らかにしないようです。つまり、画像の内部はきれいに見えますが、エッジはまだアンチエイリアス処理されていません。

于 2015-11-25T13:49:11.307 に答える