jfif怎么改成jpg?

    jfif怎么改成jpg?jfif是一种比较少见的图片格式,我们平时可能很难遇得到,第一次遇到这种图片时会比较的陌生,正是因为jfif图片使用不是很广泛,所以兼容性也比较的差,很多平台或者网站都不支持这种图片的转换,所以给使用带来了很多的不便。所以经常需要将jfif格式改成jpg格式,有的小伙伴直接文件重命名将“.jfif”改成“.jpg”,这是一种错误的方法,我所说的是要进行图片格式转换。

    那么到底如何将jfif转换jpg格式呢?我们需要使用专业的图片格式转换器来帮助我们完成,下面我就来教大家详细的操作方法吧,能快速的将大量jfif图片转成jpg格式,下面的每一个操作步骤都很重要,请仔细阅读哦,这样才能马上学会哦!

使用的转换工具:优速图片格式转换器

转换工具下载https://download.yososoft.com/jimp/2.0.1/jimp_2.0.1.exe

请看详细的转换步骤

步骤1,打开电脑上已经安装完成的“优速图片格式转换器”工具软件,然后点击工具界面左边最上面的【格式转换】功能,除了可以将jfif转换成jpg图片外,还支持另外十几种图片格式的相互转换。

步骤2,点击【添加文件】蓝色按键,将需要格式转换的jfif图片添加到软件中,因为软件支持批量转换,所以我们可以同时添加多张图片到软件中。

步骤3,我们先设置转换后的图片格式,在格式转换右边下拉框中选择“jpg”格式;然后再选择输出目录文件夹,用来保存格式转换后的图片。

步骤4,点击软件右上角【开始转换】红色按钮启动格式转换,完成格式转换后软件会自动打开输出文件夹,转换成的jpg图片会全部保存在这个文件夹内。

步骤5,从转换结果可以看到,所有的jfif图片全部转成了jpg格式。

大家都知道jfif是一种使用率非常低的图片格式,在很多设备上都不能被兼容,所以我们可以先将它转换成常用的jpg格式够再使用,上面就是关于“jfif怎么改成jpg?”的详细介绍,大家都看懂了吗?操作步骤还是比较简单的,相信在座的各位都已经学会了,感谢大家的阅读和支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在设置DPI时,`app0Jfif`为null,可以尝试使用`javax_imageio_1.0`元数据标记来设置DPI。下面是修改后的代码: ```java import javax.imageio.ImageIO; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.metadata.IIOMetadata; import javax.imageio.metadata.IIOMetadataNode; import javax.imageio.plugins.jpeg.JPEGImageWriteParam; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageDPIExample { public static void main(String[] args) { // 加载图像 BufferedImage image = null; try { image = ImageIO.read(new File("input.jpg")); } catch (IOException e) { e.printStackTrace(); } // 创建一个新的图像,设置分辨率 BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g2d = newImage.createGraphics(); g2d.drawImage(image, 0, 0, null); g2d.dispose(); // 设置DPI String outputImagePath = "output.jpg"; File outputFile = new File(outputImagePath); try { ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); if (writeParam.canWriteCompressed()) { writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); writeParam.setCompressionQuality(1f); } // 设置DPI IIOMetadata metadata = writer.getDefaultImageMetadata(ImageTypeSpecifier.createFromRenderedImage(newImage), writeParam); String metadataFormat = metadata.getNativeMetadataFormatName(); IIOMetadataNode root = (IIOMetadataNode) metadata.getAsTree(metadataFormat); IIOMetadataNode jpegVariety = getChildNode(root, "JPEGvariety"); IIOMetadataNode markerSequence = getChildNode(jpegVariety, "markerSequence"); IIOMetadataNode app0JFIF = getChildNode(markerSequence, "app0JFIF"); if (app0JFIF == null) { app0JFIF = new IIOMetadataNode("app0JFIF"); app0JFIF.setAttribute("majorVersion", "1"); app0JFIF.setAttribute("minorVersion", "2"); app0JFIF.setAttribute("resUnits", "1"); app0JFIF.setAttribute("Xdensity", "300"); app0JFIF.setAttribute("Ydensity", "300"); markerSequence.appendChild(app0JFIF); } else { app0JFIF.setAttribute("resUnits", "1"); app0JFIF.setAttribute("Xdensity", "300"); app0JFIF.setAttribute("Ydensity", "300"); } metadata.mergeTree(metadataFormat, root); // 保存图像 writer.setOutput(ImageIO.createImageOutputStream(outputFile)); writer.write(metadata, new IIOImage(newImage, null, metadata), writeParam); writer.dispose(); } catch (IOException e) { e.printStackTrace(); } } private static IIOMetadataNode getChildNode(IIOMetadataNode parentNode, String nodeName) { for (int i = 0; i < parentNode.getLength(); i++) { if (parentNode.item(i).getNodeName().equalsIgnoreCase(nodeName)) { return (IIOMetadataNode) parentNode.item(i); } } return null; } } ``` 上述代码中,我们使用`getChildNode()`方法来获取元数据节点,如果`app0JFIF`节点不存在,则创建一个新的节点,并设置相关属性。如果`app0JFIF`节点已存在,则直接设置属性值。 这样修改后的代码应该可以在没有`app0JFIF`节点的情况下设置DPI。请注意,上述示例代码仅适用于保存JPEG图像,并且设置的DPI为300。你可以根据需要进行修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值