Seite 1 von 1
QtSvg
Verfasst: 1. Mai 2008 22:57
von ConfusedSushi
Hallo,
mir ist gerade etwas mergwürdiges aufgefallen.
Und zwar liefert QSvgRenderer::boundsOnElement
und QGraphicsSvgItem::boundingRect nicht die werte
welche ich erwarte.
Also in der SVG-Datei steht eine Größe von z.B.
200x200 und QtSvg liefert mir 201x201.
Ein Bug? Ein Feature? Mach ich was falsch?
Verfasst: 2. Mai 2008 08:34
von patrik08
Ich habe version qt4.3 und 4.4 beide machen es richtig
ich convertiere sie einfach so:
Code: Alles auswählen
static inline QPixmap RenderPixmapFromSvgByte( QByteArray streams )
{
QSvgRenderer svgRenderer( streams );
QPixmap pix( svgRenderer.defaultSize() );
pix.fill(Qt::transparent);
QPainter paint(&pix);
svgRenderer.render(&paint);
return pix;
}
code aus meinen Miniscribus
http://code.google.com/p/fop-miniscribus/
QByteArray streams ist einfach das ausgelesenes file ... oder Dom
Verfasst: 2. Mai 2008 14:39
von ConfusedSushi
Ich brauch aber unbedingt nur einzelne Elemente aus dem SVG
und QGraphicsView wär auch nicht schlecht.
Ein weiteres Problem ist das Antialiasing,
ich würde die Elemente gern Pixelgenau positionieren.
Ein abschalten hat keine Wirkung gezeigt.
Das war unter Qt4.3/X11.
Ich werd mal schauen wie es sich ohne QGraphicsView
verhält ...
Verfasst: 2. Mai 2008 20:23
von ConfusedSushi
Ein Versuch unter Windows hat gezeigt das dort alles so funktioniert wie ich es erwarte
Patrick arbeitest du unter Windows?
Verfasst: 3. Mai 2008 09:21
von patrik08
ConfusedSushi hat geschrieben:Ein Versuch unter Windows hat gezeigt das dort alles so funktioniert wie ich es erwarte
Patrick arbeitest du unter Windows?
Zu 40% - 50% mit window der rest mac und Ubutu..
debug gdb nur auf linux
builde mal
http://code.google.com/p/fop-miniscribus/ und mache ein neuen layer mit einen SVG speichere das fop file und lese den xsl-fo code vom bild
oder auch externe bilder
im ordner ....
/Sample_fop/external_image.fop
http://fop-miniscribus.googlecode.com/s ... _image.fop
sowie inline svg
Code: Alles auswählen
<fo:instream-foreign-object width="320pt" height="330pt" >
<svg:svg version="1.2" baseprofile="tiny" xmlns="http://www.w3.org/2000/
http://fop-miniscribus.googlecode.com/s ... cument.fop
subversion letzte
Code: Alles auswählen
svn co http://fop-miniscribus.googlecode.com/svn/trunk/fop_miniscribus.1.0.0/ miniscribus
Verfasst: 3. Mai 2008 17:49
von ConfusedSushi
Unter Windows tritt das Problem nicht auf weil ich unter Windows Qt 4.4 benutze ... mit 4.3.4 siehts unter Windows genauso aus wie unter Linux mit 4.3
Da scheint wohl die 4.3 im Umgang mit Svg's noch etwas buggy zu sein.
Verfasst: 3. Mai 2008 19:13
von C167
warscheinlich findet sich ein Patch hier:
http://websvn.kde.org/trunk/qt-copy/patches/ wenn man eine entsprechend alte Revision nimmt, als qt-copy noch 4.3 enthielt.