java图片处理

Posted --- 锅老官扎起哦!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java图片处理相关的知识,希望对你有一定的参考价值。

Java中进行图像I/O(即读图片和写图片,不涉及到复杂图像处理)一个类包含静态方便定位方法 ImageReaders和 ImageWriters,并进行简单的编码和解码。

  • 基本代码

    /*File f1 = new File("Z:\\java\\1.png");
        BufferedImage image = ImageIO.read(f1);
        File f2 = new File("Z:\\java\\2.tiff");
        ImageIO.write(image, "png", f2);*///对应输入图片的格式
  • 参数化代码


    @Test //获取输入输出图片格式
    public void f1() {
        String readFormats[] = ImageIO.getReaderFormatNames();
        String writeFormats[] = ImageIO.getWriterFormatNames();
        System.out.println(  Arrays.asList(readFormats));
        System.out.println( Arrays.asList(writeFormats));
    }
    
    @Test
    public void f2() {
        Iterator<ImageReader> iterator = ImageIO.getImageReadersByFormatName("png");
    }
     /** 
     * 对图片裁剪,并把裁剪新图片保存 
     * @param srcPath 读取源图片路径
     * @param toPath    写入图片路径
     * @param x 剪切起始点x坐标
     * @param y 剪切起始点y坐标
     * @param width 剪切宽度
     * @param height     剪切高度
     * @param readImageFormat  读取图片格式
     * @param writeImageFormat 写入图片格式
     * @throws IOException
     */
    public void cropImage(String srcPath,String toPath,
            int x,int y,int width,int height,
            String readImageFormat,String writeImageFormat) throws IOException{   
        FileInputStream fis = null ;
        ImageInputStream iis =null ;
        try{   
            //读取图片文件
            fis = new FileInputStream(srcPath); 
            Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(readImageFormat); 
            ImageReader reader = (ImageReader) it.next(); 
            //获取图片流 
            iis = ImageIO.createImageInputStream(fis);  
            reader.setInput(iis,true) ;
            ImageReadParam param = reader.getDefaultReadParam(); 
            //定义一个矩形
            Rectangle rect = new Rectangle(x, y, width, height); 
            //提供一个 BufferedImage,将其用作解码像素数据的目标。 
            param.setSourceRegion(rect);
            BufferedImage bi = reader.read(0,param);                
            //保存新图片 
            ImageIO.write(bi, writeImageFormat, new File(toPath));     
        }finally{
            if(fis!=null)
                fis.close();       
            if(iis!=null)
               iis.close(); 
        } 
    }
    

以上是关于java图片处理的主要内容,如果未能解决你的问题,请参考以下文章

片段(Java) | 机试题+算法思路+考点+代码解析 2023

根据图片的url地址下载图片到本地保存代码片段

java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段

如何把视频片段做成动态图片

手机safari图片上传竖变横处理

java实现图片反色处理代码示例