2017-12-03 13 views
0

私は、pygameサーフェス上にマンデルブロフラクタルをnumpy配列でレンダリングしています。pygameサーフェスを設定するDPI

私は10k px * 10k pxイメージを生成し、1000dpiの10 * 10インチイメージにpylabを使用して保存すると、Windowsがフォトアプリケーションでズームインするときれいに表示される10kピクセルイメージが得られます。私はこのコードを使用してい

enter image description here

:同じサイズで表示されているが、pygameので 、画像はかなり醜い

pygame.init() 
display = pygame.display.set_mode((1000, 1000)) 
surf = pygame.surfarray.make_surface(gimage) 

surf = pygame.transform.rotate(surf, 90) 
surf = pygame.transform.scale(surf, (1000, 1000)) 

どのように1はpygameの画像サイズを設定しますをし、 DPIに?

+1

読んでください:[スケール](http://pygame.org/docs/ref/transform.html#pygame.transform.scale)は "高速スケール操作"です。また、[smoothscale](http://pygame.org/docs/ref/transform.html#pygame.transform.smoothscale)には、さまざまな忠誠を使用しています。たぶんそれはあなたに良い結果を与えるでしょう。 – furas

+0

[PIL/Pillow]を使って[サイズ変更()]することもできます(http://pillow.readthedocs.io/en/4.3.x/reference/Image.html?highlight=resize#PIL.Image.Image.resize )をさまざまなリサンプリング方法で置き換えます。そして 'PIL/Pillow'でもそれを表示することができます。 – furas

+0

だから、10k pxを1k pxにリサイズしてから、それをpygameに戻す必要がありますか? 私はキーボードでMandelbrotを探索したり、boudariesやzoomプロパティを設定したりできるので、pygameを使用しています。 – Lich4r

答えて

1

scale()は "高速スケール演算"であり、リサンプリングは使用しません。
smoothscale()もあり、異なる忠誠を使用しています。
おそらくそれはあなたに良い結果を与えるでしょう。

PIL/Pillowresize()を別のリサンプリング方法で使用することもできます。

CV2resize()を試すこともできます。
昨日質問がありましたhow to use CV2 with PyGame

関連する問題