svg解析与图片合成例子

svg路径图:

实物图:

底座图:

合成效果图:

import console; 
 
//获取原图信息(宽、高、边距大小、分辨率)
import godking.paint;
var picfile = "\例子\7.tif";
var p = godking.paint.fromBitmap(picfile);
var picw,pich = p.width,p.height;
var padding = p.mmToPix(50);//50毫米对应的像素值
var res = p.getResolution();
p.close();

//获取svg路径数据
var svgfile = "\例子\7.svg";
import godking.svgPath;
var path,svgWidth,svgHeight,x,y,w,h = godking.svgPath(svgfile /*svg路径文本或svg文件名*/,0/*x偏移*/,0/*y偏移*/,0/*画布宽度*/,0/*画布高度*/);

//根据路径,生成物体的透明图片(包含边距)。
var p = godking.paint(picw,pich);
p.setResolution(res /*横向分辨率*/, res/*纵向分辨率*/);
var scale = picw/svgWidth;
p.scale(scale /*宽度缩放比例*/,scale/*高度缩放比例*/,/*选项*/);
p.fillPath(path /*路径*/,0xFFDDDDDD/*填充颜色或brush对象*/);
p.drawPath(path /*路径*/,0xFFFF0000/*线条颜色或pen对象*/,1/*线宽*/,/*线型*/);
p.clip.set(path);
p.resetTransform();
p.drawImage(0,0,picw,pich,picfile,/*透明度或图片属性*/,/*保持比例*/);
path.delete();
x-=2;
y-=2;
w+=4;
h+=4;
x,y,w,h = x*scale,y*scale,w*scale,h*scale;
var buf = p.getBuffer("*.png",100/*JPG质量*/,::RECT(x,y,x+w,y+h)/*截取区域RECT或RECTF*/,/*宽度*/,/*高度*/,/*按比例*/,/*参数*/);
p.close();

//合成底座,保存为新图片
var p = godking.paint(w+padding*2,h+padding*2);
p.setResolution(res /*横向分辨率*/,res /*纵向分辨率*/);

//画底座
var p1 = godking.paint.fromBitmap("\例子\底座.png");
var w1,h1 = p1.getMM();
w1 = p.mmToPix(w1);
h1 = p.mmToPix(h1);
p.drawImageCenter( p.width/2/*x*/,p.height-padding/*y*/,w1/*宽*/,h1/*高*/,p1.bitmap/*图片*/,/*透明度或图片属性*/,/*保持比例*/);
p1.close();

//画物体图
p.drawImageF(padding,padding,w,h,buf/*图片*/,/*透明度或图片属性*/,/*保持比例*/);

//保存图片
p.saveToFlie( "C:\Users\Administrator\Desktop\all.png" /*文件名*/,100/*JPG质量*/ );
p.close();

console.pause();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值