`

Java下载图片三. 拼图——像美图秀秀、发微博那样可以拼长图

    博客分类:
  • Java
阅读更多

参考代码一:

    import java.awt.image.BufferedImage;  
    import java.io.File;  
      
    import javax.imageio.ImageIO;  
      
    /** 
     * @author happy 
     *  
     */  
    public class SpellImg {  
        public static void main(String[] args) {  
            try {  
                // 读取第一张图片  
                File fileOne = new File("E:\\Test\\5.png");  
                BufferedImage ImageOne = ImageIO.read(fileOne);  
                int width = ImageOne.getWidth();// 图片宽度  
                int height = ImageOne.getHeight();// 图片高度  
                // 从图片中读取RGB  
                int[] ImageArrayOne = new int[width * height];  
                ImageArrayOne = ImageOne.getRGB(0, 0, width, height, ImageArrayOne,  
                        0, width);  
                // 对第二张图片做相同的处理  
      
                File fileTwo = new File("E:\\Test\\6.png");  
                BufferedImage ImageTwo = ImageIO.read(fileTwo);  
                int[] ImageArrayTwo = new int[width * height];  
                ImageArrayTwo = ImageTwo.getRGB(0, 0, width, height, ImageArrayTwo,  
                        0, width);  
                // 生成新图片  
                // BufferedImage ImageNew = new BufferedImage(width * 2, height,  
                // BufferedImage.TYPE_INT_RGB);// (左右)  
                BufferedImage ImageNew = new BufferedImage(width, height * 2,  
                        BufferedImage.TYPE_INT_ARGB); // (上下)  
                // TYPE_INT_ARGB(不丢失alpha)TYPE_INT_RGB(丢失alpha)  
                ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB  
                // ImageNew.setRGB(width, 0, width, height, ImageArrayTwo, 0,  
                // width);// 设置右半部分的RGB(左右)  
                ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB(上下)  
                File outFile = new File("E:\\Test\\8.png");  
                ImageIO.write(ImageNew, "png", outFile);// 写图片  
      
                System.out.println("success!");  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
      
    }  

 

参考代码二:

    /** 
         * Java拼接多张图片 
         *  
         * @param pics 
         * @param type 
         * @param dst_pic 
         * @return 
         */  
        public static boolean merge(String[] pics, String type, String dst_pic) {  
      
            int len = pics.length;  
            if (len < 1) {  
                System.out.println("pics len < 1");  
                return false;  
            }  
            File[] src = new File[len];  
            BufferedImage[] images = new BufferedImage[len];  
            int[][] ImageArrays = new int[len][];  
            for (int i = 0; i < len; i++) {  
                try {  
                    src[i] = new File(pics[i]);  
                    images[i] = ImageIO.read(src[i]);  
                } catch (Exception e) {  
                    e.printStackTrace();  
                    return false;  
                }  
                int width = images[i].getWidth();  
                int height = images[i].getHeight();  
                ImageArrays[i] = new int[width * height];// 从图片中读取RGB  
                ImageArrays[i] = images[i].getRGB(0, 0, width, height,  
                        ImageArrays[i], 0, width);  
            }  
      
            int dst_height = 0;  
            int dst_width = images[0].getWidth();  
            for (int i = 0; i < images.length; i++) {  
                dst_width = dst_width > images[i].getWidth() ? dst_width  
                        : images[i].getWidth();  
      
                dst_height += images[i].getHeight();  
            }  
            System.out.println(dst_width);  
            System.out.println(dst_height);  
            if (dst_height < 1) {  
                System.out.println("dst_height < 1");  
                return false;  
            }  
      
            // 生成新图片  
            try {  
                // dst_width = images[0].getWidth();  
                BufferedImage ImageNew = new BufferedImage(dst_width, dst_height,  
                        BufferedImage.TYPE_INT_RGB);  
                int height_i = 0;  
                for (int i = 0; i < images.length; i++) {  
                    ImageNew.setRGB(0, height_i, dst_width, images[i].getHeight(),  
                            ImageArrays[i], 0, dst_width);  
                    height_i += images[i].getHeight();  
                }  
      
                File outFile = new File(dst_pic);  
                ImageIO.write(ImageNew, type, outFile);// 写图片  
            } catch (Exception e) {  
                e.printStackTrace();  
                return false;  
            }  
            return true;  
        }  

 

分享到:
评论

相关推荐

    安卓Andriod源码——仿美图秀秀拼图功能

    在安卓开发中,实现类似美图秀秀的拼图功能是一项常见的需求,它涉及到图像处理、布局管理和用户交互等多个方面。下面将详细讲解如何在Android平台上实现这一功能,并结合提供的资源进行解析。 首先,让我们从核心...

    安卓Android源码——仿美图秀秀拼图功能.zip

    本项目"安卓Android源码——仿美图秀秀拼图功能"就是一个很好的实例,它提供了一个类似美图秀秀的图片拼接功能。下面我们将详细探讨这个项目中的关键知识点。 1. **图片处理**: - 图片拼接:在Android中,我们...

    美图秀秀拼图模板

    "美图秀秀拼图模板"是一款非常受欢迎的图片编辑工具,特别适合喜欢分享生活瞬间或者创作个性化图像的用户。这个工具提供了丰富的拼图模板,让用户可以轻松地将多张照片组合成一张具有创意和美感的图片。接下来,我们...

    Android之仿美图秀秀拼图功能_图片处理.zip

    这个压缩包文件“Android之仿美图秀秀拼图功能_图片处理.zip”提供了一种实现这一功能的方法,特别强调了对2014-03big文件的处理。下面将详细解释这个过程中的关键知识点。 1. **Android 图像处理**:Android提供了...

    iOS仿照 美图秀秀 拼图 功能

    在iOS开发中,仿照美图秀秀的拼图功能是一项常见的需求,它涉及到图像处理、用户界面设计以及手势识别等多个技术领域。本项目通过集成简单、可参考的代码,帮助开发者快速实现类似美图秀秀的图片拼接功能。 首先,...

    Android应用源码——仿美图秀秀和IOS系统的相机胶卷.zip

    这份名为“Android应用源码——仿美图秀秀和IOS系统的相机胶卷”的压缩包,显然是一个关于Android应用开发的学习资源。它包含了实现类似美图秀秀应用和iOS系统相机胶卷功能的源代码,这对于Android开发者,尤其是对...

    iOS 模仿 美图秀秀拼图功能

    美图秀秀是一款广受欢迎的图片编辑应用,其拼图功能允许用户将多张照片组合成一个有创意的新图像,提供多种布局、滤镜和装饰效果。以下是一些关于实现这一功能的关键知识点: 1. **图像处理框架**:在iOS上,最常用...

    美图秀秀 3.0.0 正式版

    中国最流行的图片软件——美图秀秀是一款很好用的免费图片处理软件,不用学习就会用,比PS简单100倍!美图秀秀独有的图片特效、美容、饰品、边框、场景、拼图等功能,加上每天更新的精选素材,可以让你1分钟做出影楼...

    iOS拼图功能(类似美图秀秀)

    在iOS应用开发中,创建一个类似美图秀秀的拼图功能是一项常见的需求,它可以提供用户自定义图像布局,编辑并分享个性化图片。本篇将详细介绍如何使用Swift语言实现这样的功能,主要涉及以下知识点: 1. **图像处理...

    微信小程序项目实例——图片处理小工具(自制低配版美图秀秀)

    微信小程序项目实例——图片处理小工具(自制低配版美图秀秀) 这是一款实用的工具型小程序 共有滤镜、效果图和动态滤镜三个功能 用户可以选择想要处理的图片,设置模糊、怀旧、复古、美白以及其他效果 同时程序还...

    图片马赛克拼图.zip

    1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,...

    七巧板拼图——打印版教学教材.pdf

    然而,根据标题“七巧板拼图——打印版教学教材.pdf”,我们可以推测这份文档很可能包含了以下关于七巧板拼图的知识点: 1. 七巧板的起源和历史:七巧板作为一种古老的智力游戏,它的起源可以追溯到中国,最早是在...

    在线图片处理API接口 美图秀秀离线版

    离线版包含图片美化(M2)、轻量拼图(M3)、头像编辑(M4),至于美图秀秀完整版,因为盘根错节,调用的素材很多,就没有去抓取了。 至于接口文档什么的,自己到他们官网去看(http://open.web.meitu.com/wiki/)。...

    美图秀秀 v6.0

    美图秀秀支持一键发到新浪微博、人人网、腾讯微博……美图秀秀官方下载 六大亮点:1.不需要基础的P图软件“美图秀秀”界面直观,操作简单,比同类软件更好用。每个人都能轻松上手,从此做图不求人。2.神奇的人像...

    美图秀秀 v6.1.2.6 绿色便携版.rar

    《美图秀秀 v6.1.2.6 绿色便携版——轻松打造完美图像的神器》 “美图秀秀”是一款广受欢迎的图像处理软件,尤其以其简单易用的操作界面和丰富的美化功能著称。在这个版本v6.1.2.6中,我们看到的是一个绿色便携版,...

    美图秀秀6.0

    美图秀秀独有的图片特效、美容、饰品、边框、场景、拼图等功能,加上每天更新的精选素材,可以让你1分钟做出影楼级照片!美图秀秀还能做非主流图片、闪图、QQ表情、QQ头像……已有5000万人正在使用美图秀秀,你还没...

    美图秀秀 v4.0.1

    美图秀秀独有的图片特效、美容、拼图、场景、边框、饰品等功能,加上每天更新的精选素材,可以让你1分钟做出影楼级照片!美图秀秀支持一键发到新浪微博、人人网、腾讯微博……已有8000万人正在使用美图秀秀,你还没...

    JAVA-puzzle-game.zip_JAVA 拼图 作业_java 拼图

    【JAVA 拼图游戏详解】 Java编程语言在游戏开发领域有着广泛的应用,尤其是在教育环境中,它被用来教授基础的编程概念和逻辑思维。本项目是一个基于Java的拼图游戏,旨在帮助学习者掌握Java编程的基本技巧,同时...

    美图秀秀最新破解版

    美图秀秀可以轻松美化数码照片,独有一键p图、神奇美容、边框场景、超炫闪图等强大功能,还有每日更新的海量素材,广泛应用于个人照片处理、qq表情制作、qq头像制作、空间图片美化、非主流图片处理、淘宝网店装饰、...

    Android 仿美图秀秀拼图功能使用代码的时候-IT计算机-毕业设计.zip

    在Android平台上,开发一款类似美图秀秀的拼图功能是一项常见的任务,尤其对于毕业设计或论文中的App项目。这个压缩包"Android 仿美图秀秀拼图功能使用代码的时候"提供了一个源码示例,帮助开发者了解如何在实际项目...

Global site tag (gtag.js) - Google Analytics