png如何转为svg格式:R语言

分分钟换成高清大图

今天有个同学问R语言画图的问题。

现在有个图片是png格式的,图像如下:

biocc_80961ce2_032f_418f_991c_9b311d41ba
一个很简单的直方图。

R输出图片时,采用的是png()函数,由于png图片是非矢量图,因此要指定像素。这个图片默认的像素是2000×1200

问题是如何将这个图片转为svg 格式的。

如果直接用svg()转换,图像会变成这样的:

 biocc_fe1e4986_33d1_4f80_a98b_6723c6d6bc

也就是显示不完整,因为svg()是矢量图,没有像素的概念,只有英寸。

因此需要根据公式进行英寸和像素的转化。

方法1

xpng x轴像素个数,yy轴像素的个数。设总像素为T

x*y=T

svg中 x轴长度为y轴为b。(本图中比例为53

 设变量pppi,像素密度。

p*(a*b)=T

h为基础单位,那么

p*(5h*3h)=x*y

h=(x*y)/15

a=5*(x*y)/15

b=3*(x*y)/15

通过对上面图的计算,可以得知

a=400/p *5

b=400/p*3

但是这样还是有一个问题。这个不是很容易计算,这个可以通过计算图像面积得到。

方法2

其实方法更多的是从理解的角度,方法是更加简单粗暴的。

可以利用画图软件将png 打开,转换为英尺,看看的大小,然后修改pdf 的,然后就可以啦。

祝好运。

  • 发表于 2017-04-07 09:51
  • 阅读 ( 4628 )
  • 分类:软件工具

0 条评论

请先 登录 后评论
不写代码的码农
SXR

44 篇文章

作家榜 »

  1. 祝让飞 118 文章
  2. 柚子 91 文章
  3. 刘永鑫 64 文章
  4. admin 57 文章
  5. 生信分析流 55 文章
  6. SXR 44 文章
  7. 张海伦 31 文章
  8. 爽儿 25 文章