//创建TranscoderInput对象
TranscoderInput inputBitmap = new TranscoderInput(svgFile);
//创建TranscoderOutput对象
OutputStream outputStream = new ByteArrayOutputStream();
TranscoderOutput outputBitmap = new TranscoderOutput(outputStream);
//创建Transcoder对象
PNGTranscoder converter = new PNGTranscoder();
converter.addTranscodingHint(PNGTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER, 0.3527f);
//设置转换参数
float heightInPixels = 400f;
float widthInPixels = 800f;
float scaleFactor = heightInPixels / widthInPixels;
//设置转换范围和输出分辨率
converter.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, (float) heightInPixels);
converter.addTranscodingHint(PNGTranscoder.KEY_WIDTH, (float) widthInPixels);
converter.addTranscodingHint(PNGTranscoder.KEY_AOI, new Rectangle2D.Double(0,0,widthInPixels,heightInPixels));
converter.addTranscodingHint(PNGTranscoder.KEY_KEEP_ASPECT_RATIO, true);
converter.addTranscodingHint(PNGTranscoder.KEY_BACKGROUND_COLOR, Color.WHITE);
converter.addTranscodingHint(PNGTranscoder.KEY_FORCE_TRANSPARENT_WHITE, Boolean.TRUE);
converter.addTranscodingHint(PNGTranscoder.KEY_BACKGROUND_TRANSPARENCY, 255);
converter.addTranscodingHint(PNGTranscoder.KEY_RESOLUTION, new Float(1200));
//执行转换
converter.transcode(inputBitmap, outputBitmap);
//从输出流中获取转换后的PNG文件
byte[] pngBytes = ((ByteArrayOutputStream) outputBitmap.getOutputStream()).toByteArray();
此示例将SVG文件转换为PNG格式,并将分辨率设置为1200dpi。可以通过更改heightInPixels
和widthInPixels
来调整分辨率大小。