私はPIL(python画像ライブラリ)を使用して非常に大きな画像をトリミングし、トリミングされた領域をインタフェースに表示します。私が持っている問題は、プロセスが長時間かかることです。ユーザーが画像をクリックして切り抜くと、イメージはそれを添付するサイザーに表示するまでにかなりの時間がかかります。画像表示を高速化する
私はこれを2つの方法でやってみました:まず、切り抜いた領域をイメージとしてディスクに保存して、そのイメージをサイザーにロードしてみました。 2番目の試みは、空の画像を作成し、pil画像をwx画像に変換し、それをsizerにロードすることでした。ディスクに書き込む最初の方法は、メモリ内でそれを管理する第2の方法よりも速く感じるということは驚くべきことです。ここでは、コードサンプルは、次のとおりです。
最初の方法:
area = image_object.crop(self.cropxy)
area.save(CROP_IMAGE, 'jpeg')
crop_image = wx.Image(CROP_IMAGE, wx.BITMAP_TYPE_JPEG).ConvertToBitmap()
crop_bitmap = wx.StaticBitmap(self.crop_panel, bitmap=crop_image, name="Cropped Image")
crop_bitmap.CenterOnParent()
crop_bitmap.Refresh()
第二の方法:
area = image_object.crop(self.cropxy)
image = wx.EmptyImage(area.size[0], area.size[1])
image.SetData(area.convert("RGB").tostring())
crop_image = wx.BitmapFromImage(image)
crop_bitmap = wx.StaticBitmap(self.crop_panel, bitmap=crop_image, name="Cropped Image")
crop_bitmap.CenterOnParent()
crop_bitmap.Refresh()
画像は今とてもゆっくりと現れますようにこれを行うには良い方法はありますか?
あなたが最も時間を作るどの部分、それをタイミング試みたことがありますか? 画像のサイズはどれくらいですか、切り抜き量はどれくらいですか? –
私はこれを夢中にしました –