2 lyle900905 Lyle900905 于 2013.10.17 20:05 提问

svg转jpg报错 2 字节的 UTF-8 序列的字节 2 无效。

代码:
/**
* 将wmf图片转成jpg图片
*
* @param filePath
* @throws Exception
*/
public static String wmfToJpg(String wmfPath) throws Exception {
File wmf = new File(wmfPath);
FileInputStream wmfStream = new FileInputStream(wmf);
ByteArrayOutputStream imageOut = new ByteArrayOutputStream();
int noOfByteRead = 0;
while ((noOfByteRead = wmfStream.read()) != -1) {
imageOut.write(noOfByteRead);
}
imageOut.flush();
WMFTranscoder transcoder = new WMFTranscoder();
TranscodingHints hints = new TranscodingHints();
hints.put(ImageTranscoder.KEY_WIDTH, 20f);
hints.put(ImageTranscoder.KEY_HEIGHT, 20f);

    transcoder.setTranscodingHints(hints);
    TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(
            imageOut.toByteArray()));
    ByteArrayOutputStream svg = new ByteArrayOutputStream();
    TranscoderOutput output = new TranscoderOutput(svg);

    transcoder.transcode(input, output);
    String svgFile = StringUtils.replace(wmfPath, "wmf", "svg");
    FileOutputStream fileOut = new FileOutputStream(svgFile);
    fileOut.write(svg.toByteArray());
    fileOut.flush();

PNGTranscoder it = new PNGTranscoder();
ByteArrayOutputStream jpg = new ByteArrayOutputStream();
it.transcode(new TranscoderInput(new ByteArrayInputStream(svg.toByteArray())),new TranscoderOutput(jpg));
String jpgFile = StringUtils.replace(wmfPath, "wmf", "jpg");
FileOutputStream jpgOut = new FileOutputStream(jpgFile);
jpgOut.write(jpg.toByteArray());
jpgOut.flush();

    return null;
}

错误:
Exception in thread "main" org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
2 字节的 UTF-8 序列的字节 2 无效。
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
at com.cets.service.ReadWordByStream.wmfToJpg(ReadWordByStream.java:227)
at com.cets.service.ReadWordByStream.getContent(ReadWordByStream.java:91)
at com.cets.service.ReadWordByStream.main(ReadWordByStream.java:160)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!