`

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源码——仿美图秀秀拼图功能

    安卓Andriod源码——仿美图秀秀拼图功能使用代码的时候,请修改2014-03big文件放到mntsdcardclothe目录下。.zip

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

    安卓Android源码——仿美图秀秀拼图功能使用代码的时候,请修改2014-03big文件放到mntsdcardclothe目录下

    美图秀秀拼图模板

    美图秀秀拼图模板

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

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

    美图秀秀 3.0.0 正式版

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

    图片马赛克拼图.zip

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

    iOS仿照 美图秀秀 拼图 功能

    仿照美图秀秀,实现了拼图功能,集成简单,可以参考下

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

    类似美图秀秀部分拼图功能实现。

    iOS 模仿 美图秀秀拼图功能

    iOS 模仿 美图秀秀拼图功能

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

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

    美图秀秀 v6.0

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

    美图秀秀6.0

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

    Java程序设计(打砖块,俄罗斯方块,计算器,看图软件,螃蟹过街,拼图——键盘操作,拼图——鼠标操作,文本编辑器)

    java 打砖块,俄罗斯方块,计算器,看图软件,螃蟹过街,拼图——键盘操作,拼图——鼠标操作,文本编辑器

    美图秀秀 v4.0.1

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

    美图秀秀最新破解版

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

    美图秀秀.zip

    美图秀秀.美图秀秀网页版是美图秀秀图片处理软件的在线版,简单易用,独有的图片特效、人像美容、拼图、场景、边框、饰品等功能可以使您的图片获得绝妙的效果。

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

    仿美图秀秀拼图功能使用代码的时候,请修改2014-03big文件放到mntsdcardclothe目录下。

    Java的作业拼图游戏.zip

    Java的作业拼图游戏.zipJava的作业拼图游戏.zipJava的作业拼图游戏.zip Java的作业拼图游戏.zipJava的作业拼图游戏.zipJava的作业拼图游戏.zip Java的作业拼图游戏.zipJava的作业拼图游戏.zipJava的作业拼图游戏.zip...

    美图秀秀 v5.1.0.2 抢先版.zip

    美图秀秀独有的图片特效、美容、拼图、场景、边框、饰品等功能,加上每天更新的精选素材,可以让你1分钟做出影楼级照片,还能一键分享到新浪微博、人人网……在各大软件站图片类高居榜首的美图秀秀,目前已有1.2亿人...

Global site tag (gtag.js) - Google Analytics