QImage에 이미지가 있습니다. 표시하기 전에 이미지를 PIL로 처리하고 싶습니다. ImageQT 클래스를 사용하면 PIL 이미지를 QImage로 변환 할 수 있지만 QImage에서 PIL 이미지로 이동하는 데는 아무 것도 나타나지 않습니다.PyQt를 PIL 이미지로 변환
답변
는이 코드로 PIL에 QImage에서 변환 :
img = QImage("/tmp/example.png")
buffer = QBuffer()
buffer.open(QIODevice.ReadWrite)
img.save(buffer, "PNG")
strio = cStringIO.StringIO()
strio.write(buffer.data())
buffer.close()
strio.seek(0)
pil_im = Image.open(strio)
나는이 일을 얻기 전에 많은 조합을 시도했다.
당신은 파이썬 문자열로 QImage를 변환 할 수 있습니다 : PIL이에서 변환
>>> image = QImage(256, 256, QImage.Format_ARGB32)
>>> bytes = image.bits().asstring(image.numBytes())
>>> len(bytes)
262144
이 용이해야한다.
직접 이미지 데이터가 QImage와 PIL 이미지간에 호환되지 않는다고 생각하지 않습니다. Qt는 32 비트에서 모든 라인을 정렬합니다. 즉, 이미지 라인 당 바이트 수가 4로 나눌 수 없다면, 데이터에 쓰레기가 삽입 될 것입니다. 아마 더 많은 문제가 있습니다. –
다른 경로가 될 것이다 :
- 넣 NumPy와 배열로 이미지 데이터 (example code가 PIL 사용)
- 는
- 넣에 데이터를 NumPy와, scipy 또는 scikits.image를 사용하여 이미지를 조작 QImage (예 : scikits.image 아카이브 (1에 링크 됨)를 탐색하고 qt_plugin.py의 45 행을 봅니다. - 죄송합니다. stackoverflow에서 아직 더 많은 링크를 게시 할 수 없습니다.)
As Virgil에 따르면 데이터는 32 비트 (또는 4 바이트) 정렬되어야합니다. 즉, 스 니펫에 표시된대로 3 단계에서 스트라이드를 지정해야한다는 것을 기억해야합니다.
다른 링크를 추가 할 수 있습니까? (문제가 생겼을 때 두 번째 링크를 잡을 다른 답변을 게시했습니다 .-) – SamB
예, 여기 있습니다 : https://github.com/stefanv/scikits.image/blob/master/scikits/image/ io/_plugins/qt_plugin.py # L45 –
from PyQt4 import QtGui, QtCore
img = QtGui.QImage("greyScaleImage.png")
bytes=img.bits().asstring(img.numBytes())
from PIL import Image
pilimg = Image.frombuffer("L",(img.width(),img.height()),bytes,'raw', "L", 0, 1)
pilimg.show()
감사합니다. Eli Bendersky에게 감사드립니다.
각 코드 줄 앞에 공백 4 개를 추가하는 것을 잊었습니다. 줄 사이에 줄 바꿈을 하나만 넣으면됩니다. – SamB
#Code for converting grayscale QImage to PIL image
from PyQt4 import QtGui, QtCore
qimage1 = QtGui.QImage("t1.png")
bytes=qimage1.bits().asstring(qimage1.numBytes())
from PIL import Image
pilimg = Image.frombuffer("L",(qimage1.width(),qimage1.height()),bytes,'raw', "L", 0, 1)
pilimg.show()
- 1. PIL 변환을위한 PIL 변환
- 2. PIL 및 PyQt를 사용하여 위젯에 QImage를 그릴 때 나타나는 버그
- 3. PIL 파이썬에서 affine 변환
- 4. PIL : 미리보기 이미지가 정사각형 이미지로 끝납니다.
- 5. PIL 이미지로 게시 된 파일 열기
- 6. 문자열을 jQuery로 이미지로 변환
- 7. C#. 이미지로 .ppt 변환
- 8. jQuery SVG에서 이미지로 변환
- 9. PDF를 TBitmap 이미지로 변환
- 10. ABCpdf가 텍스트를 이미지로 변환
- 11. 웹 페이지를 이미지로 변환
- 12. PDF를 PDF의 이미지로 변환
- 13. 비트 맵을 이미지로 변환
- 14. div 요소를 이미지로 변환
- 15. 텍스트를 이미지로 변환
- 16. 텍스트를 이미지로 변환
- 17. visio를 JPG 이미지로 변환
- 18. BLOB 데이터를 이미지로 변환
- 19. mht를 이미지로 변환 C#
- 20. 정당한 단락을 이미지로 변환
- 21. PIL 이미지의 색조 변환 후 파이썬으로 저장
- 22. 3D 모델을 2D 이미지로 변환
- 23. 자바에서 픽셀 데이터를 이미지로 변환
- 24. FFMPEG 및 swf 이미지로 변환?
- 25. .png 이미지를 .gif 이미지로 변환
- 26. 기조 프레젠테이션을 ipad의 이미지로 변환
- 27. html 텍스트를 PHP로 이미지로 변환
- 28. PDF를 Java의 축소판 이미지로 변환
- 29. pyqt를 배우기에 좋은 자료가 있습니까?
- 30. PIL 투명성
이것은 파이썬 3에서도 작동합니다. "cStringIO.StringIO"를 "io.BytesIO"로 변경하십시오. – mzuther