我已经通过更改 标签的 width 和 height 属性以匹配我的预期输出大小然后使用ImageMagick进行转换来解决了这个问题 . 奇迹般有效 .

这是我的Python代码,一个将返回JPG文件内容的函数:

import gzip, re, os

from ynlib.files import ReadFromFile, WriteToFile

from ynlib.system import Execute

from xml.dom.minidom import parse, parseString

def SVGToJPGInMemory(svgPath, newWidth, backgroundColor):

tempPath = os.path.join(self.rootFolder, 'data')

fileNameRoot = 'temp_' + str(image.getID())

if svgPath.lower().endswith('svgz'):

svg = gzip.open(svgPath, 'rb').read()

else:

svg = ReadFromFile(svgPath)

xmldoc = parseString(svg)

width = float(xmldoc.getElementsByTagName("svg")[0].attributes['width'].value.split('px')[0])

height = float(xmldoc.getElementsByTagName("svg")[0].attributes['height'].value.split('px')[0])

newHeight = int(newWidth / width * height)

xmldoc.getElementsByTagName("svg")[0].attributes['width'].value = '%spx' % newWidth

xmldoc.getElementsByTagName("svg")[0].attributes['height'].value = '%spx' % newHeight

WriteToFile(os.path.join(tempPath, fileNameRoot + '.svg'), xmldoc.toxml())

Execute('convert -background "%s" %s %s' % (backgroundColor, os.path.join(tempPath, fileNameRoot + '.svg'), os.path.join(tempPath, fileNameRoot + '.jpg')))

jpg = open(os.path.join(tempPath, fileNameRoot + '.jpg'), 'rb').read()

os.remove(os.path.join(tempPath, fileNameRoot + '.jpg'))

os.remove(os.path.join(tempPath, fileNameRoot + '.svg'))

return jpg

java svg to png_如何用Image Magick将SVG转换为PNG?相关推荐

  1. java 解析 svg文件_java – 如何加载和解析SVG文档

    概观 使用Apache Batik加载和解析SVG文件.该解决方案在将SVG文件转换为MetaPost的初步阶段显示Java代码.这应该提供有关如何使用Java从SVG文件加载,解析和提取内容的一般概 ...

  2. Java PDF文档转换 — PDF转Excel、SVG转PDF

    概述 Spire.PDF for Java支持将PDF文档高质量地转换为XPS.图片.SVG.Word.HTML和PDF/A格式,以及支持将XPS.HTML文档转换为PDF格式.本文将通过代码演示来介 ...

  3. python svg转png_如何使用Python3实现svg转png与pdf(附转换源代码)

    说明: SVG 意为可缩放矢量图形(Scalable Vector Graphics),SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失,png即可移植网络图形格式,也是一种位图文件存储格式 ...

  4. SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

    SVG实例详解系列(一) (svg概述.位图和矢量图区别(图解).SVG应用实例) 目录 一.什么是SVG? (1).位图和矢量图概念(图解) (2).SVG的小例子 (a)笑脸符 (b).小鸟 (c ...

  5. ajax 请求svg,jQuery append 到AJAX加载的SVG问题

    我已成功通过AJAX从外部文件加载了一些svg:$("#svg").load(svgUrl + " svg", function() { // do stuff ...

  6. i css svg,如何设置 CSS 背景图中的 SVG 的颜色

    Coloring SVGs in CSS Background Images 如何设置 CSS 背景图中的 SVG 的颜色 I love using SVG in CSS background ima ...

  7. HTML5的 2D SVG和SVG DOM的学习笔记(2)---SVG动画

    SVG支持动画.可以通过以下几种方法获得动画效果: 使用SVG动画元素.SVG可以描述随时间变化的图形对象,使用不同的动画元素可以定义运动路径,淡入淡出效果和对象的膨胀.收缩.旋转和变换颜色. 使用S ...

  8. html显示svg图片,HTML5/CSS3系列教程:使用SVG图片

    在我们开始使用SVG前,让我们先了解一下 SVG,并且解释一下为什么使用SVG. SVG全称是Scalable Vector Graphics,如果你使用过adobe Illustrator的话,相信 ...

  9. 将图片转换成svg文件,自定义icon小图标,svg速成

    将图片转换成svg文件,自定义icon小图标,svg速成 一.svg是什么? 二.操作步骤 1.进入网站 2.将svg复制 3.引用svg文件 总结 一.svg是什么? SVG是一种图像文件格式,它的 ...

  10. 狂神说Spring讲解第19动态代理中错误java: 不兼容的类型: com.Orac.kuang.Host无法转换为com.kuang.demo3.Rent

    java: 不兼容的类型: com.Oracle.demo3.Host无法转换为com.Oracle.demo3.Rent 解决方法: Clinet: package com.Oracle.demo3 ...

最新文章

  1. python【洛谷算法题单-搜索】P1605 迷宫
  2. php增加mysql用户_PHP+MYSQL实现用户的增删改查_PHP
  3. Qt Creator 代码自动补全设置
  4. boost::successive_shortest_path_nonnegative_weights用法的测试程序
  5. java http超时重连_httpclient 重连机制
  6. 计算机对教育的影响雅思听力,雅思听力机考带来的两大影响
  7. 阿里云MySQL及Redis灵异断连现象:安全组静默丢包解决方法
  8. erlang一次线上问题解决
  9. 2018年全国计算机二级vb真题,2017年计算机二级VB考试试题
  10. Spring系统学习:180615--通过外部属性文件导入对数据库的连接
  11. VHDL——4选1数据选择器
  12. 4月1日起支付宝、微信扫码支付单日限额500元,够用吗?
  13. stm32——端口重映射
  14. Chromedriver插件的安装
  15. Tomcat和Java版本对照
  16. $Self~Problem~C~:~Samsara$
  17. 文献阅读(182)Bufferless NoC
  18. 为什么网易和常州贝特康姆软件技术有限公司都声称是前cn99,他们之间是什么关系
  19. hyperf接入阿里云nacos配置中心
  20. 概率论中密度函数变换

热门文章

  1. linux中文件大小的分配,Linux创造固定的文件大小-预分配磁盘空间
  2. Python(二十):迭代器、生成器
  3. 【POJ2155】Matrix(二维区间修改+单点查询---二维树状数组)
  4. 如何让sublime编译c语言,如何在Sublime Text 3中编译C程序?
  5. Java往前拼接,利用Java程序将字符串进行排序与拼接
  6. 安卓手机怎么彻底清理手机内存_手机内存难清理?试试直接删掉这3个文件夹...
  7. 翻译: 4.1 多层感知器MLP Multilayer Perceptrons pytorch
  8. opencv python3 找图片不同_使用OpenCV和Python查找图片差异
  9. Python连接presto
  10. 求小球落地5次后所经历的路程和第5次反弹的高度