精华内容
下载资源
问答
  • 利用Java代码实现图片切割

    千次阅读 热门讨论 2019-03-29 14:46:36
    利用Java代码实现图片切割 将一张大图分割成指定数量的小图 private static void splitImage() throws IOException { //String originalImg = "C:\\img\\split\\a380_1280x1024.jpg"; String originalImg = "F:\...

    利用Java代码实现图片切割

    将一张大图分割成指定数量的小图

      private static void splitImage() throws IOException {
    
            //String originalImg = "C:\\img\\split\\a380_1280x1024.jpg";
            String originalImg = "F:\\images\\school\\-11ff2b32525fd5f2.jpg";
            // 读入大图
            File file = new File(originalImg);
            FileInputStream fis = new FileInputStream(file);
            BufferedImage image = ImageIO.read(fis);
    
            // 分割成4*4(16)个小图
            int rows = 4;
            int cols = 4;
            int chunks = rows * cols;
    
            // 计算每个小图的宽度和高度
            int chunkWidth = image.getWidth() / cols;
            int chunkHeight = image.getHeight() / rows;
    
            int count = 0;
            BufferedImage imgs[] = new BufferedImage[chunks];
            for (int x = 0; x < rows; x++) {
                for (int y = 0; y < cols; y++) {
                    //设置小图的大小和类型
                    imgs[count] = new BufferedImage(chunkWidth, chunkHeight, image.getType());
    
                    //写入图像内容
                    Graphics2D gr = imgs[count++].createGraphics();
                    gr.drawImage(image, 0, 0,
                            chunkWidth, chunkHeight,
                            chunkWidth * y, chunkHeight * x,
                            chunkWidth * y + chunkWidth,
                            chunkHeight * x + chunkHeight, null);
                    gr.dispose();
                }
            }
    
            // 输出小图
            for (int i = 0; i < imgs.length; i++) {
                //ImageIO.write(imgs[i], "jpg", new File("C:\\img\\split\\img" + i + ".jpg"));
                ImageIO.write(imgs[i], "jpg", new File("E:\\temp" + i + ".jpg"));
            }
    
            System.out.println("完成分割!");
        }
    
    展开全文
  • 主要介绍了java实现上传图片进行切割的方法,以完整实例形式分析了Java针对上传图片进行切割的技巧,非常具有实用价值,需要的朋友可以参考下
  • JAVA实现的图片剪切预览,使用JQUERY控件实现图片的页面裁剪,然后通过JAVA后台实现对图片的剪切处理
  • java实现图片打印功能

    2014-08-22 14:21:19
    java实现图片的打印功能,本代码打印的是75*75的二维码,纸张大小定义为120*83,A4纸等请自行定义
  • 一个完整的图片上传剪切图像功能,而且是java版本,下了不后悔,
  • 实现图片切割功能,适合初步认识使用
  • 主要介绍了java实现截取PDF指定页并进行图片格式转换功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 使用Java实现图像分割

    万次阅读 2015-05-12 16:48:47
    使用Java实现图像分割为减少动画制作过程中的IO操作,我们可以使用连续动画来改善动画播放效率。假如我们有如下的一张图像:如果我们对图像中的每张小图像单独分割成独立的文件,那么当每次要使用这些小图像的时候,...

    使用Java实现图像分割

    为减少动画制作过程中的IO操作,我们可以使用连续动画来改善动画播放效率。

    假如我们有如下的一张图像:

    source

    如果我们对图像中的每张小图像单独分割成独立的文件,那么当每次要使用这些小图像的时候,我们都得从文件中读取图像信息。

    实际上我们可以利用Java将整张大图像中的每个小图像在应用程序中分割出来,然后使用的时候,直接从分割后的图像中获取需要使用的小图像就可以了,这样就不用每次都从文件中读取小图像信息,效率自然会比较高。

    那么如何来实现图像分割操作呢?

    示例:

    import java.awt.Component;
    import java.awt.Image;
    import java.awt.image.CropImageFilter;
    import java.awt.image.FilteredImageSource;
    import java.awt.image.ImageFilter;
    
    /**
     * 图像处理辅助类
     * 
     * @author 小明
     *
     */
    public class ImageUtil {
    
        /**
         * 分割图像
         * 
         * @param image
         *            传入的图片对象
         * @param rows
         *            垂直方向上需要裁剪出的图片数量 - 行
         * @param cols
         *            水平方向上需要裁剪出的图片数量 - 列
         * @param x
         *            开始裁剪位置的X坐标
         * @param y
         *            开始裁剪位置的Y坐标
         * @param width
         *            每次裁剪的图片宽度
         * @param height
         *            每次裁剪的图片高度
         * @param changeX
         *            每次需要改变的X坐标数量
         * @param changeY
         *            每次需要改变的Y坐标数量
         * @param component
         *            容器对象,目的是用来创建裁剪后的每个图片对象
         * @return 裁剪完并加载到内存后的二维图片数组
         */
        public static Image[][] cutImage(Image image, int rows, int cols, int x,
                int y, int width, int height, int changeX, int changeY,
                Component component) {
            Image[][] images = new Image[rows][cols];
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < cols; j++) {
                    ImageFilter filter = new CropImageFilter(x + j * changeX, y + i
                            * changeY, width, height);
                    images[i][j] = component.createImage(new FilteredImageSource(
                            image.getSource(), filter));
                }
            }
    
            return images;
        }
    }
    

    编写一个专门分割图像的方法cutImage(),该方法中使用到的CropImageFilter类、FilteredImageSource类的详情,大家可以参考JavaAPI文档。

    测试:

    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import java.awt.Toolkit;
    
    import javax.swing.JFrame;
    
    import com.utils.ImageUtil;
    
    /**
     * 图像分割测试
     * 
     * @author 小明
     *
     */
    public class CutImageDemo extends JFrame {
    
        private static final long serialVersionUID = 1140239462766935667L;
        private MediaTracker mediaTracker;
        private Image[][] images;
    
        public CutImageDemo() {
            setSize(800, 600);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            // 创建媒体追踪器对象
            mediaTracker = new MediaTracker(this);
            // 获取源图像
            Image image = Toolkit.getDefaultToolkit().getImage("images/Cg0430.jpg");
            // 分割图像
            images = ImageUtil.cutImage(image, 5, 5, 0, 3, 128, 95, 128, 95, this);
            int index = 0;
            // 将所有分割得到的图像添加到MediaTracker追踪列表中
            for (Image[] images2 : images) {
                for (Image image2 : images2) {
                    mediaTracker.addImage(image2, index++);
                }
            }
    
            setVisible(true);
        }
    
        @Override
        public void paint(Graphics g) {
    
            try {
                // 加载所有图像
                mediaTracker.waitForAll();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            if (mediaTracker.checkAll()) { // 所有图像加载完毕
                // 循环将每张分割的图像绘制到窗体中
                for (int row = 0, len = images.length; row < len; row++) {
                    for (int col = 0, length = images[row].length; col < length; col++) {
                        Image img = images[row][col];
                        int imgWidth = img.getWidth(null);
                        int imgHeight = img.getHeight(null);
                        int x = col * (imgWidth + 10) + 15;
                        int y = row * (imgHeight + 15) + 40;
                        g.drawImage(img, x, y, null);
                    }
                }
            }
        }
    
        public static void main(String[] args) {
            new CutImageDemo();
        }
    }
    

    运行结果:

    result

    展开全文
  • 使用opencv对图片进行分割首先:要导入opencv的jar包,以及dll

    针对java开发,希望可以对大家有帮助

    1.首先:下载opencv  点击下载,下载完成后


    341版本和320版本,是需要jdk1.8支持的。310版本只需要jdk1.7就可以。

    大家如果不愿意花积分的话也可以去官网进行下载

    https://opencv.org/releases.html


    2.下载完成后需要要导入opencv的jar包,把dll和jar放在一起

    3.直接上码:

            /**
    	 * 通过两点坐标对图片进行切割
    	 * @param args
    	 */
    	 public static void main(String[] args ){
                 //加载dll
    	     String relativelyPath=System.getProperty("user.dir"); 
    	     System.load(relativelyPath+"\\lib\\opencv_java310.dll");
    	     //选择分割图片
                 Mat image = Imgcodecs.imread("E:/12.png");
                String filename = "E:/cc_sub";
                //将图片等分为四份(分别输入起点和终点的坐标)
                Rect rect = new Rect(100,100,100,100);  
                Mat roi_img = new Mat(image,rect); 
                Mat tmp_img = new Mat();
                roi_img.copyTo(tmp_img);
                Imgcodecs.imwrite(filename+".png", tmp_img);
    	    }
    你也可以通过两个点的x、y坐标来进行分割

    原图:


    切割后:


    希望可以对大家有帮助,如果出现问题大家可以在评论说出。


    展开全文
  • 干货来了,JAVA代码实现图片分割、合并工具类

    千次阅读 多人点赞 2021-04-28 11:41:54
    几天前在CSDN问答上看到这个问题,想联系提问者,告诉他,我解决了,可是...新建普通java 项目,Java单类实现代码,复制到java项目中,用idea编辑器 主方法运行。(引入的Class 都是JDK中自有的) import javax.i.

    几天前在CSDN问答上看到这个问题,想联系提问者,告诉他,我解决了,可是一直没有联系上, 于是决定把实现代码以文章的形式发出来。

    思路:

    将原图,竖向划分为10个等份,前两个等份作为1个参考图,后8份作为1张样本图,所以总共需要分割9张图出来(第一张占两份),然后将第一张参考图和后面8张样本图合并成8个样本结果即可。

    实现

    新建普通java 项目,Java单类实现代码,复制到java项目中,用idea编辑器 主方法运行。(引入的Class 都是JDK中自有的)

    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    public class ImageUtil {
    
        public static BufferedImage cutIO(int x, int y, int width, int height, BufferedImage img) {
            int[] imgRgb = new int[width * height];
            System.out.println(x+" 
    展开全文
  • 可以利用java代码实现图片切割再重组么?如何实现?求案例讲解或者思路!
  • java实现视频转化图片图片内容识别 今年3月份我终于找到了一个开发的工作,不过万万没想到的是作为刚入职的新人第一次以为会接到一个普通的crud的模块,结果确接到了一个这么刺激的功能(未接触过的领域)。 公司...
  • java实现的均匀切割图片

    千次阅读 2018-12-07 08:12:18
    在做拼图的时候,需要将图片均匀切割,这时候就需要一个切图工具了,ps虽然有一个切图工具,但是那个ps太大了,于是手动做了一个用来切图的小工具,具体代码实现如下   package Mytool; import java.awt.Button; ...
  • java 水印 图像处理 图片分割 裁剪 缩放 功能 且带整个程序的整合, 和单元测试对单独功能的处理 操作,并可以通过打印 发送传真,全部
  • java图片切割圆形

    千次阅读 2019-05-09 15:46:21
    @Test public void test() { try { // 读取图片 BufferedImage bi1 = ImageIO.read(new File("g:/free-sheet-share.jpg")); BufferedImage bi2 = new BufferedImage(bi1.g...
  • 利用openvc实现图片切割
  • Java中处理一些路径相关的问题的时候,如要取出ie浏览器上传文件的文件名,由于ie会把整个文件路径都作为文件名上传,需要用java.lang.String中的replaceAll或者split来处理,下面看看使用方法
  • Java实现生成图片验证码、图片切割、图片合并 工作时用到的一些图片操作代码,总结分享一下 1.从零到有生成验证码图片 /** * 生成图片验证码 * * @param width * @param heigh * @param color * @...
  • 介绍:https://blog.csdn.net/STRIVEYe/article/details/88388072
  • Java实现可换行文字转图片

    千次阅读 2019-06-14 11:31:24
    需求来源 由于微信公众号无法直接复制别人的文章转发,因为会被检测认为是相同的原创文章,所以很...1、java本身肯定有这样的api来实现基本的文字转图片功能,果不其然,经过一番简单搜索,发现java.awt.Graphics类...
  • java实现上传图片进行切割

    千次阅读 2014-08-22 13:26:17
    为什么我要进行上传的图片进行切割呢,我这个项目的图片是部门logo,每个部门都可以选择不同的logo,但是要应对浏览器的兼容以及拉伸,我选择了把一张图片切成左、中、右和剩下的部分,因为左边和中变可能会有图案...
  • 2,简单验证码图片处理方法,二值化,去干扰线,去干扰素,去背景,切割图片 3,复杂的需要接入一下训练模型,图片算法,进行训练,提高识别率 tess4J,pom文件引入,下载比较久耐心等待 <dependency> ...
  • Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
  • Java如何实现字符串的分割 前言 本章对Java如何实现字符串的分割,是基于jDK1.8版本中的String.split()方法。 本文篇幅较长,内容较为复杂涉及到许多小细节,都是我在使用时候以及查阅资料时候遇到的坑,建议反复...
  • 最近遇到的部分需求就是在后台管理上传pdf文件到服务器中,该文件的服务器地址存入数据库,通过该地址拆分多个图片用作展示。网上大部分都是本地文件拆分。 maven: <!-- ...
  • 1.首先,使用JavaSDK,快速实现人像的分割。 我用的是使用maven依赖,(前提是项目中有用的maven): <dependency> <groupId>com.baidu.aip</groupId> <artifactId>java-sdk</...
  • javacv3.1.0版本实现了图像拼接,底层采用了opencv3.1.0的dll,将dll拷贝到C:\windows\system32目录,工程采用netbeans开发,肯定可以编译运行
  • import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.*; /** * ImageIO的测试类 * */ public class Main { public static void main(String[] args) ...
  • 本功能实现需要用到第三方jar包 javaCV。 javaCV简介 JavaCV 提供了在计算机视觉领域的封装库,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。此外,该工具可以很容易地使用Java平台的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,933
精华内容 15,173
关键字:

java实现图片切割

java 订阅