Me gustaría usar QWebView para un trabajo de miniaturas de SVG porque admite filtros (a diferencia de QSvgRender, que solo es compatible con SVG Tiny 1.2). Parece funcionar bastante bien, excepto en el caso de la representación de fuentes, pero puede modificarse con el paquete fontconfig. El problema es que parece estar submuestreando elementos con filtros. Los elementos sin filtros se ven bien y nítidos, mientras que aquellos con filtros están pixelados y borrosos.QWebView representación subcompuesta de SVG
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtSvg import *
from PyQt4.QtWebKit import *
import sys
import time
if __name__ == '__main__':
app = QApplication(sys.argv)
data = open('/home/xxx/workspace/yyy/zzz/out.svg').read()
# svg = QSvgRenderer(QByteArray(data))
qim = QImage(int(1024), int(768), QImage.Format_ARGB32)
web = QWebView()
web.setRenderHint(QPainter.SmoothPixmapTransform)
web.setRenderHint(QPainter.Antialiasing)
web.setRenderHint(QPainter.TextAntialiasing)
painter = QPainter()
def load_finished(ok):
web.resize(1024,768)
painter.begin(qim)
# svg.render(painter)
web.render(painter)
painter.end()
print "null:", qim.isNull()
qim.save('test2.png')
sys.exit()
web.connect(web, SIGNAL('loadFinished(bool)'), load_finished)
web.load(QUrl('file:///home/xxx/workspace/yyy/zzz/out.svg'))
sys.exit(app.exec_())
Qt 4.7. El mismo archivo SVG se ve bien cuando se representa con Inkscape, rsvg o en Chrome, Firefox.
Usted debe enviar su ejemplo de archivo SVG para las pruebas. – abbot
y url de archivo out.svg. – linjunhalida