当前位置: 首页 > news >正文

太原哪家网站建设公司好最新疫情爆发

太原哪家网站建设公司好,最新疫情爆发,做网站 分辨率应该是多少,公司推广网站怎么做svg转png写了一个spring boot项目,支持传入svg文件转出png图片,并且自定义转出png的宽和高。主要代码如下:所需依赖如下:演示如下:首先,运行项目使用接口调用工具调用接口发送请求,提取文件1000…

svg转png

  • 写了一个spring boot项目,支持传入svg文件转出png图片,并且自定义转出png的宽和高。
    • 主要代码如下:
    • 所需依赖如下:
    • 演示如下:
      • 首先,运行项目
      • 使用接口调用工具调用接口
      • 发送请求,提取文件
      • 10000分辨率的超清大图
  • 项目已经开源,开源🔗链接如下:

写了一个spring boot项目,支持传入svg文件转出png图片,并且自定义转出png的宽和高。

svg是矢量图,因此我们用svg可以转出任意大小的高清png大图。

主要代码如下:

import org.apache.batik.transcoder.Transcoder;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Objects;/*** @author Peter Cheung* 2023/2/16 15:21*/
@RestController
public class SvgToPngController {/*** 上传svg* <p>* 然后* <p>* 下载png* <p>* consumes定义multipart/form-data*/@GetMapping(path = "download", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public void download(float height, float width, MultipartFile file, HttpServletResponse response) throws IOException, TranscoderException {//MultipartFile转InputStreamInputStream in = new ByteArrayInputStream(file.getBytes());Transcoder transcoder = new PNGTranscoder();//设置png图片的宽和长transcoder.addTranscodingHint(PNGTranscoder.KEY_WIDTH, width);transcoder.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, height);try {TranscoderInput input = new TranscoderInput(in);//清空responseresponse.reset();//强制下载不打开response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);//设置编码为UTF_8response.setCharacterEncoding(StandardCharsets.UTF_8.name());//Content-Disposition的作用:告知浏览器以何种方式显示响应返回的文件,用浏览器打开还是以附件的形式下载到本地保存//attachment表示以附件方式下载 inline表示在线打开 "Content-Disposition:inline; filename=文件名.mp3"//filename表示文件的默认名称,因为网络传输只支持URL编码,因此需要将文件名URL编码后进行传输,前端收到后需要反编码才能获取到真正的名称response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode((Objects.requireNonNull(file.getOriginalFilename()).split("\\."))[0], StandardCharsets.UTF_8.name()) + ".png");TranscoderOutput output = new TranscoderOutput(response.getOutputStream());transcoder.transcode(input, output);} finally {in.close();}}
}

所需依赖如下:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--文件上传--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-svggen</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-awt-util</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-bridge</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-css</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-dom</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-gvt</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-parser</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-script</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-svg-dom</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-transcoder</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-util</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-xml</artifactId><version>1.6</version></dependency><!-- 此处不能使用2.9.1版本,使用2.9.1生成png会失败 --><dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><version>2.5.0</version></dependency><dependency><groupId>xml-apis</groupId><artifactId>xmlParserAPIs</artifactId><version>2.0.2</version></dependency><dependency><groupId>org.axsl.org.w3c.dom.svg</groupId><artifactId>svg-dom-java</artifactId><version>1.1</version></dependency><dependency><groupId>xml-apis</groupId><artifactId>xml-apis</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.w3c.css</groupId><artifactId>sac</artifactId><version>1.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

演示如下:

首先,运行项目

在这里插入图片描述

使用接口调用工具调用接口

在这里插入图片描述

注意:get请求,路径如同,body里使用form-data,三个参数,file是你要上传的svg文件,height是转出png图片的高,width是转出png图片的长,height和width是数字类型,支持整数和小数。

发送请求,提取文件

在这里插入图片描述

在这里插入图片描述

如图,我将转出的png放于桌面

10000分辨率的超清大图

在这里插入图片描述

项目已经开源,开源🔗链接如下:

🔗svg转png

http://www.ds6.com.cn/news/25529.html

相关文章:

  • wordpress 登陆浏览seo营销是什么意思
  • 东莞常平粤海水务seo查询是什么
  • 美女做暖暖免费视频2017网站网站的营销推广
  • 网站建设明细报价表程序员培训班要多少钱
  • wordpress 简约博客大连百度网站排名优化
  • 深圳做h5网站公司百度搜索排名购买
  • 推广网站怎么建设拓客软件哪个好用
  • 如何做自己的视频网站百度怎么发布短视频
  • 用word可以做网站吗西安网络优化培训机构公司
  • 学做网站要学什么语言企业培训机构排名
  • 做网站程序先从哪一步开始中国十大公关公司排名
  • 用手机可以做网站拉新推广怎么快速拉人
  • 沈阳互联网公司优化大师是什么
  • 网站编程培训班免费正能量erp软件下载
  • 旅游网站网页布局seo常规优化
  • 外贸网站如何做的好武汉seo诊断
  • 用ps如何做网站首页如何推广产品
  • 网站上的销售怎么做的十堰seo优化方法
  • 天津建设工程信息网官网首页哪里搜索引擎优化好
  • 西安网站建设设计的好公司哪家好全国新冠疫苗接种率
  • 门户网站要用什么软件做平台推广方式有哪些
  • 网站运营新手做重庆放心seo整站优化
  • 网络营销公司取名字大全深圳网站优化推广
  • 搞个竞拍网站怎么做网页模板免费下载网站
  • 企业做网站公司怎么做bt磁力在线种子搜索神器下载
  • 宁波网站建设建站系统网络营销推广的概念
  • 网站策划书的内涵seo自学
  • 网络空间 网站 域名百度com打开
  • 山东网站建设企业网页怎么做
  • 网站建设ppt河南公司网站建设