java wmf格式图片转png

-下载所需jar包:http://pan.baidu.com/s/1eSExTsQ
-1.新建工具类

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import net.arnx.wmf2svg.gdi.svg.SvgGdi;
import net.arnx.wmf2svg.gdi.wmf.WmfParser;

import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.ImageTranscoder;
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.batik.transcoder.wmf.tosvg.WMFTranscoder;
import org.w3c.dom.Document;

public class WmfToPng {

    public static void main(String[] args) {

        String result = convert("d:\\80814378377.wmf");
        System.out.println(result);

    }

    @Deprecated
    public static String convert2(String path) throws TranscoderException,
            IOException {
        String wmfPath = path;
        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();
        wmfStream.close();
        // wmf 转换为svg
        WMFTranscoder transcoder = new 
Java中,可以使用`javax.imageio`包中的`ImageIO`类来实现将WMF文件换为PNG格式并保持大小的功能。下面是一个简单的示例代码: ```java import java.awt.Dimension; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class WMFConverter { public static void main(String[] args) { String wmfFile = "path/to/input.wmf"; String pngFile = "path/to/output.png"; try { File input = new File(wmfFile); Image wmfImage = ImageIO.read(input); int width = wmfImage.getWidth(null); int height = wmfImage.getHeight(null); BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); bufferedImage.getGraphics().drawImage(wmfImage, 0, 0, null); File output = new File(pngFile); ImageIO.write(bufferedImage, "png", output); System.out.println("WMF换为PNG成功!"); } catch (IOException e) { System.out.println("WMF换为PNG失败:" + e.getMessage()); } } } ``` 在上面的代码中,首先通过调用`ImageIO.read`方法将WMF文件读取为一个`Image`对象。然后,获取该对象的宽度和高度,并创建一个相同大小的`BufferedImage`。 接下来,使用`bufferedImage.getGraphics().drawImage`方法将WMF图像绘制到`BufferedImage`对象上。这样可以将WMF图像换为与原始大小相同的PNG格式图像。 最后,将`BufferedImage`对象写入到指定的PNG文件中,通过调用`ImageIO.write`方法并指定格式为"png"来实现。 需要注意的是,上述代码仅适用于将WMF图像换为PNG图像,并保持原始宽度和高度。若需要对图像进行其他处理,可以参考Java提供的其他图形处理库和API。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值