迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中的裁剪图像

作者:迹忆客 最近更新:2023/07/16 浏览次数:

图像裁剪经常用于删除图像中的干扰部分。 您可以裁剪图像以引起人们对框架中特定对象的注意,本文将教您如何以编程方式在 Java 中裁剪照片。

尽管付费工具有很多用途并且可以节省时间,但当我们可以在几天内完成它时,尝试总是值得的。 这篇文章主要针对初学者,他们可以通过避免使用昂贵的第三方工具来省钱。 我们将使用 BufferedImage 类中的 subimage 函数在 Java 中裁剪图像。


使用 BufferedImage 类在 Java 中裁剪图像

创建这些示例时考虑了 BufferedImage 类。

BufferedImage 类的 getSubimage() 方法的语法:

public BufferedImage getSubimage(int X, int Y, int width, int height)

此代码将返回一个子图像,其矩形区域由过去的输入确定。 下面是四个参数的说明。

参数 说明
X 提供所选矩形区域左上角的 x 坐标。
Y 提供左上角指定矩形区域的 y 坐标。
Height 指定矩形区域的高度。
Width 定义矩形区域的宽度。

以下是我们要裁剪的图像。

原始图像

代码示例:

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main{
public static void main(String []args){
  File imageFile = new File("/D:/test/image.jpg");
  BufferedImage bufferedImage =null;
  try
      {
      bufferedImage = ImageIO.read(imageFile);
      BufferedImage image=bufferedImage.getSubimage(0,0,50,50);
      File pathFile = new File("/D:/test/image-crop.jpg");
      ImageIO.write(image,"jpg", pathFile);
    }
  catch (IOException e)
      {
          System.out.println(e);
      }
   }
}

输出:

Java 中裁剪图像

请注意 ,我在第 10 行和第 16 行中提供了我的文件位置,但您必须提供文件位置。 此外,您可以允许用户在运行时提供 X、Y、宽度和高度值,从而为您的代码提供额外的灵活性。

这里我们正在寻找另一个例子,要裁剪图像,我们需要一些Java中的类。 以下是在 Java 中裁剪图像之前需要导入的类。

您必须导入 File 类才能读取和写入图像文件。 此类通常表示文件和目录的路径名。

Import java.io.File

IOException 类用于处理错误。

Import java.io.IOException

我们使用 BufferedImage 类来构建 BufferedImage 对象,该对象保存图像。

import java.awt.image.BufferedImage

我们将导入ImageIO类来对图像进行读写操作。 本课程提供静态图像读取和写入技术。

import javax.imageio.ImageIO

使用 BufferedImage 类的几个内置方法。

// importing the necessary packages
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

// Main class
public class GFG {

    // Main driver method
    public static void main(String[] args)
    {
        // Using a try block, look for exceptions
        try {

            // Reading the original image from the local path by
            // creating an object of BufferedImage class
            BufferedImage originalImg = ImageIO.read(
                new File("D:/test/Image.jpeg"));

            // Fetching and printing alongside the
            // dimensions of original image using getWidth()
            // and getHeight() methods
            System.out.println("Original Image Dimension: "
                               + originalImg.getWidth()
                               + "x"
                               + originalImg.getHeight());

            // Creating a subimage of given dimensions
            BufferedImage SubImg
                = originalImg.getSubimage(50, 50, 50, 50);

            // Printing Dimensions of the new image created
            System.out.println("Cropped Image Dimension: "
                               + SubImg.getWidth() + "x"
                               + SubImg.getHeight());

            // Creating a new file for the cropped image by
            // creating an object of the File class
            File outputfile
                = new File("D:/test/ImageCropped.jpeg");

            // Writing image in the new file created
            ImageIO.write(SubImg, "png", outputfile);

            // Display message on console representing
            // proper execution of program
            System.out.println(
                "Cropped Image created successfully");
        }

        // Catch block to handle the exceptions
        catch (IOException e) {

            // Print the exception along with the line number
            // using printStackTrace() method
            e.printStackTrace();
        }
    }
}

此外,程序执行后,控制台将在指定路径显示执行消息和新创建的裁剪图像。


总结

您已经清楚地了解了如何在 Java 中裁剪图像。 我们已经展示了如何裁剪其矩形区域由几种不同方法中的过去输入确定的图片,以及如何使用 BufferedImage 类及其其他内置方法在 Java 中裁剪图像。

此外,您可以使用文档来了解有关 Java 图像裁剪的更多信息。 既然您已经阅读了本页,您可能知道什么是图像裁剪。

它只是删除图像的外部部分以改善框架、改变纵横比等。现在您可以使用给定的 Java 代码非常快速地完成此操作。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java迭代器remove()方法

发布时间:2023/07/17 浏览次数:117 分类:Java

Java 开发人员经常需要在迭代时从 ArrayList 中删除元素或对象。在本文中,我们将了解迭代器的remove()方法和集合的remove()方法的工作原理有何不同。

查找 Java 中的内存泄漏

发布时间:2023/07/17 浏览次数:96 分类:Java

本文将教我们如何查找Java内存泄漏。未使用的项目占用额外的内存空间称为内存泄漏。 内存泄漏是有问题的,因为它们会堵塞内存资源并随着时间的推移降低系统性能。

Java 8 Stream 中的属性不同

发布时间:2023/07/17 浏览次数:171 分类:Java

本文通过属性演示了在 Java 中使用流的独特功能。Java 8 Stream 中的属性不同 Java 8 Stream 有一个 distinct() 方法,可以过滤列表中的重复项。

在 Java 中将 Iterable 转换为 Stream

发布时间:2023/07/17 浏览次数:51 分类:Java

在本文中,我们将学习一种将 Iterable 转换为 Stream 的方法。在 Java 中使用 StreamSupport.stream() 方法将 Iterable 转换为 Stream

在 Eclipse 中更改 Java 版本

发布时间:2023/07/17 浏览次数:110 分类:Java

用户在处理特定项目时可能需要降级或升级 Java 版本。 在这种情况下,Eclipse IDE 允许我们更改特定项目的 JDK 版本。本文介绍了在 Eclipse IDE 中更改 Java 版本的分步指南。在 Eclipse 中下载并添加

在 Java 中使用 Fiddler 捕获 HTTPS 流量

发布时间:2023/07/17 浏览次数:59 分类:Java

Fiddler是一个Web调试代理工具,可以帮助开发人员调试Web应用程序。 它允许捕获网络流量并监控传入和传出的数据。本文将教我们设置Fiddler来捕获HTTPS流量。

用 Java 构建工具

发布时间:2023/07/17 浏览次数:53 分类:Java

本文主要关注Java构建工具。 首先,我们将了解什么是构建工具,然后我们将讨论 5 个最流行的 Java 工具。什么是构建工具 无论开发人员使用哪种编程语言来开发软件,构建工具在自动化构建过

Java 中的警报弹出窗口

发布时间:2023/07/17 浏览次数:149 分类:Java

Swing 库用 Java 显示警报弹出窗口。 本教程演示如何用 Java 创建警报消息。Java 中的警报弹出窗口 如上所述,Swing 库用 Java 创建警报弹出窗口。

Java 中的背景颜色

发布时间:2023/07/17 浏览次数:108 分类:Java

本文介绍如何在 Java 中更改背景颜色。Java 中的背景颜色 在 Java GUI 中更改背景颜色是一个简单的操作。 setBackground() 方法用于设置和更改 Java 中 JFrame 的背景颜色。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便