java svg to png_如何用Image Magick将SVG转换为PNG?
我已经通过更改 标签的 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?相关推荐
- java 解析 svg文件_java – 如何加载和解析SVG文档
概观 使用Apache Batik加载和解析SVG文件.该解决方案在将SVG文件转换为MetaPost的初步阶段显示Java代码.这应该提供有关如何使用Java从SVG文件加载,解析和提取内容的一般概 ...
- Java PDF文档转换 — PDF转Excel、SVG转PDF
概述 Spire.PDF for Java支持将PDF文档高质量地转换为XPS.图片.SVG.Word.HTML和PDF/A格式,以及支持将XPS.HTML文档转换为PDF格式.本文将通过代码演示来介 ...
- python svg转png_如何使用Python3实现svg转png与pdf(附转换源代码)
说明: SVG 意为可缩放矢量图形(Scalable Vector Graphics),SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失,png即可移植网络图形格式,也是一种位图文件存储格式 ...
- SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)
SVG实例详解系列(一) (svg概述.位图和矢量图区别(图解).SVG应用实例) 目录 一.什么是SVG? (1).位图和矢量图概念(图解) (2).SVG的小例子 (a)笑脸符 (b).小鸟 (c ...
- ajax 请求svg,jQuery append 到AJAX加载的SVG问题
我已成功通过AJAX从外部文件加载了一些svg:$("#svg").load(svgUrl + " svg", function() { // do stuff ...
- i css svg,如何设置 CSS 背景图中的 SVG 的颜色
Coloring SVGs in CSS Background Images 如何设置 CSS 背景图中的 SVG 的颜色 I love using SVG in CSS background ima ...
- HTML5的 2D SVG和SVG DOM的学习笔记(2)---SVG动画
SVG支持动画.可以通过以下几种方法获得动画效果: 使用SVG动画元素.SVG可以描述随时间变化的图形对象,使用不同的动画元素可以定义运动路径,淡入淡出效果和对象的膨胀.收缩.旋转和变换颜色. 使用S ...
- html显示svg图片,HTML5/CSS3系列教程:使用SVG图片
在我们开始使用SVG前,让我们先了解一下 SVG,并且解释一下为什么使用SVG. SVG全称是Scalable Vector Graphics,如果你使用过adobe Illustrator的话,相信 ...
- 将图片转换成svg文件,自定义icon小图标,svg速成
将图片转换成svg文件,自定义icon小图标,svg速成 一.svg是什么? 二.操作步骤 1.进入网站 2.将svg复制 3.引用svg文件 总结 一.svg是什么? SVG是一种图像文件格式,它的 ...
- 狂神说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 ...
最新文章
- python【洛谷算法题单-搜索】P1605 迷宫
- php增加mysql用户_PHP+MYSQL实现用户的增删改查_PHP
- Qt Creator 代码自动补全设置
- boost::successive_shortest_path_nonnegative_weights用法的测试程序
- java http超时重连_httpclient 重连机制
- 计算机对教育的影响雅思听力,雅思听力机考带来的两大影响
- 阿里云MySQL及Redis灵异断连现象:安全组静默丢包解决方法
- erlang一次线上问题解决
- 2018年全国计算机二级vb真题,2017年计算机二级VB考试试题
- Spring系统学习:180615--通过外部属性文件导入对数据库的连接
- VHDL——4选1数据选择器
- 4月1日起支付宝、微信扫码支付单日限额500元,够用吗?
- stm32——端口重映射
- Chromedriver插件的安装
- Tomcat和Java版本对照
- $Self~Problem~C~:~Samsara$
- 文献阅读(182)Bufferless NoC
- 为什么网易和常州贝特康姆软件技术有限公司都声称是前cn99,他们之间是什么关系
- hyperf接入阿里云nacos配置中心
- 概率论中密度函数变换
热门文章
- linux中文件大小的分配,Linux创造固定的文件大小-预分配磁盘空间
- Python(二十):迭代器、生成器
- 【POJ2155】Matrix(二维区间修改+单点查询---二维树状数组)
- 如何让sublime编译c语言,如何在Sublime Text 3中编译C程序?
- Java往前拼接,利用Java程序将字符串进行排序与拼接
- 安卓手机怎么彻底清理手机内存_手机内存难清理?试试直接删掉这3个文件夹...
- 翻译: 4.1 多层感知器MLP Multilayer Perceptrons pytorch
- opencv python3 找图片不同_使用OpenCV和Python查找图片差异
- Python连接presto
- 求小球落地5次后所经历的路程和第5次反弹的高度