PIL (python 이미지 라이브러리)을 사용하여 매우 큰 이미지를 자르고 자른 영역을 인터페이스에 표시합니다. 문제는 프로세스가 너무 오래 걸린다는 것입니다. 사용자가 이미지를 자르려면 이미지를 클릭 할 때 이미지를 첨부 한 크기 조정기에 이미지를 표시하는 데 시간이 많이 걸립니다.이미지 표시 속도 향상
나는이 두 가지 방법을 시도했다. 먼저 자른 부분을 디스크에 이미지로 저장하려고 시도하고 그것을 즉시 sizer에로드했다. 두 번째 시도는 빈 이미지를 만들고 pil 이미지를 wx 이미지로 변환 한 다음 sizer로로드하는 것입니다. 놀랍게도 디스크에 쓰는 첫 번째 방법은 메모리에서 두 번째로 관리하는 방법보다 빠르게 느껴집니다. 다음 코드 샘플은 다음과 같습니다
첫 번째 방법 :
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()
이미지는 이제 천천히 나타날 수 있도록이 작업을 수행 할 수있는 더 나은 방법이 있나요?
당신이 어떤 부분이 가장 많은 시간을 만들고, 그 타이밍 봤어 : 여기
는 변환 루틴입니까? 이미지 크기와 잘라내는 크기는 얼마입니까? –나는 이것을 알아 냈다. –