私は Pygame を使用して Python でプログラムを作成しています。このプログラムは、画像を画面にロードし、生データを開き (jpg をテキスト ファイルとして開いた場合に表示される文字のように)、いくつかのランダムな文字をデータを jpg として再保存して、再び pygame にロードします。これにより、クールな見た目のグリッチ効果が得られます。
目的のグリッチに問題はありませんが、どのようなランダムなキャラクターがどこに配置されていても、特定の画像については、画像がグリッチ関数を通過するたびに、最終的に下部に灰色のバーが表示されることがわかりました画像。関数を単純化して、イメージをロードし、イメージを読み取りバイナリとして開き (Mac を使用している場合でも)、生データの文字列を保存し、この文字列に基づいて新しいファイルを書き込んでから、そのファイルをロードします。画像は意図的にグリッチされておらず、データはおそらく変更されていませんが、それでもこの灰色のバーが表示されます.
関連するコードは次のとおりです。
def initializeScreen(x, y):
pygame.display.set_mode((x,y))
return pygame.display.get_surface()
def importImage(fileName):
imgText = open(fileName, 'rb')
imgTextStr = imgText.read()
imgText.close()
return imgTextStr
screenSurf = initializeScreen(800,600)
textOfImg = importImage('/Users/Amoeba/Desktop/GlitchDriving/Clouds.jpg')
newFile = open('/Users/Amoeba/Desktop/GlitchDriving/tempGlitchFile.jpg', 'wb')
newFile.write(textOfImg)
newimgSurf = pygame.image.load('/Users/Amoeba/Desktop/GlitchDriving/tempGlitchFile.jpg')
screenSurf.blit(newimgSurf, (0,0))
pygame.display.flip()
関数を通過する前後の画像の例を次に示します。
灰色のバーのサイズは画像によって異なることに注意してください。一部の画像は、本来あるべきように、目に見えて変更されずに私の機能を通過することさえあります。また、自分のプログラムで書き込んだ新しいバージョンの jpg をプレビューなどの画像閲覧ソフトで開くと、灰色のバーが表示されません。私の疑いは、それが pygame 画像読み込み関数の癖であるか、jpg から文字列へ、またはその逆の変換でドロップされている奇妙な文字 (または空白) があることです。2 つのテキスト ファイル (灰色のバーがあるものとないもの) を比較しましたが、オンラインの「差分ファインダー」を使用しても違いは見つかりませんでした。
これは私の最初の投稿ですが、何十回も回答を求めてきました。どんな助けでも大歓迎です。