2017-07-06 14 views
0

Je suis en train de convertir un fichier PDF en svg afin que je puisse modifier certains détails avec Inkscape. Le problème que j'ai est que l'importation change légèrement à travers une sorte de lissage.pdf2svg conduit à des images floues

c'est, en particulier, la figure d'origine:

enter image description here

Et ceci est la figure après la conversion en SVG

enter image description here

C'est la sortie de pdf2svg, ce qui est exactement Je reçois la même chose si j'utilise directement Inkscape.

Je joins un lien où vous pouvez obtenir les deux fichiers.

https://www.dropbox.com/s/domxcc8pncyouy6/images.tar.gz?dl=0

Connaissez-vous une solution à ce problème?

Répondre

0

Sans voir le SVG, c'est difficile à dire avec certitude. Cependant, il semble que la partie «heat map» de votre fichier PDF/SVG soit une image bitmap basse résolution agrandie dans la page.

Par défaut, les moteurs de rendu SVG utilisent l'interpolation lors de l'agrandissement d'une image. Cela donne à l'image un aspect lissé/flou à grande échelle.

Vous pourriez essayer de localiser l'élément <image> dans votre fichier SVG et d'ajouter l'attribut image-rendering="pixelated" à la balise <image>. Certains navigateurs prennent en charge cette option et mettront à l'échelle l'image en utilisant la méthode de mise à l'échelle du plus proche voisin.

Sinon, vous devrez peut-être extraire l'image du fichier PDF ou SVG; rééchantillonner à une résolution plus élevée (par exemple 4x ou 8x); puis réinsérez-le dans le fichier.

  1. Trouver l'image dans le fichier SVG (<image id="image5" .../>
  2. Extrait l'image codée base64 du DataURI. Et le décoder à l'aide d'un décodeur base64.
  3. Multiplier la résolution d'image à l'aide d'un éditeur, cusch comme Photoshop ou gimp.
  4. Encode le fichier à base64
  5. Mise à jour cet élément <image> avec la nouvelle base64.
+0

Th anks pour la réponse. J'ai joint un lien où vous pouvez obtenir les fichiers si vous avez envie de jeter un oeil. J'ai essayé d'éditer le SVG mais cela ne semble pas résoudre le problème. – Onturenio

+0

Oui. Comme je le soupçonnais, il s'agit d'un bitmap basse résolution (65x43). Si vous ajoutez l'attribut 'image-rendu 'il fonctionne dans Chrome, mais pas FF (voir https://jsfiddle.net/oowz03vy/). Si vous en avez besoin pour travailler partout alors AFAIK il n'y a pas d'autre moyen d'obtenir le look pixellated autre que d'augmenter sa résolution comme je l'ai suggéré. –