java实现美图秀秀的照片拼接功能(照片数量任意)

python 将图片拼接,美图秀秀拼图 #每天一点点,记录工作中实际可行操作# python 将图片拼接,美图秀秀拼图 这个脚本是将几个图片,拼成三行两列,类似美图秀秀的拼图功能 import PIL.Image as Image import os IMAGES_PATH = r'C:\Users\admin\Desktop\测试图片\\' #被拼接的图片所在位置 IMAGES_FORMAT = ['.jpg', '.JPG... 阅读详情

每次想拼接照片的时候是不是会发现,最多只能拼接9张照片。那如何实现多张照片的拼接呢!因为本小编想把和女朋友的聊天记录拼接在一起,发现美图秀秀只能拼接9张照片,为了解决这个问题小编我写了这段java代码实现不限量的照片拼接,废话不多说直接上代码。

package com.ds1602shouzuoye;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.imageio.ImageIO;

public class JoinImage {
	
	
    public static void main(String[] args) {
    	List<String> list=new ArrayList<String>();
        String path = "F:/qqt";  //要拼接照片的路径 
        getFile(path,0,list);
        Iterator<String> it=list.iterator();
//        while(it.hasNext()) {
//        	String str=it.next();
//        	System.out.println(str);
//        }
      //调用方法生成图片
        JoinImage.merge(list,"jpg", "F:/qqt2/test2.jpg");
    }   
	
	
	/** 
	    * Java拼接多张图片 
	    *  
	    * @param imgs 
	    * @param type 
	    * @param dst_pic 
	    * @return 
	    */ 
	   public static boolean merge(List<String> list, String type, String dst_pic) {  
		   System.out.println("拼接需要一定时间,请耐心等待!");
		   //获取需要拼接的图片长度
	       int len = list.size();  
	       //判断长度是否大于0
	       if (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(list.get(i));
	               System.out.println(src[i]);
	               images[i] = ImageIO.read(src[i]);  
	           } catch (Exception e) {  
	               e.printStackTrace();  
	               return false;  
	           }  
	           int width = images[i].getWidth();  
	           int height = images[i].getHeight();  
	        // 从图片中读取RGB 像素
	           ImageArrays[i] = new int[width * height];
	           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;  
	       }  
	       System.out.println("照片拼接结束,请到你指定的文件夹下查看");
	       return true;  
	   }  
	    /**
	     * 函数名:getFile
	     * 作用:使用递归,输出指定文件夹内的所有文件
	     * 参数:path:文件夹路径   deep:表示文件的层次深度,控制前置空格的个数
	     * 前置空格缩进,显示文件层次结构
	     * 存放要拼接的照片的文件夹里不能有子文件夹
	     */
	   private static void getFile(String path,int deep,List<String> list){   
	    	//定义一个字符串数组
	    	//String[] imgs=new String[100];
	        // 获得指定文件对象  
	        File file = new File(path);   
	        // 获得该文件夹内的所有文件   
	        File[] array = file.listFiles();   

	        for(int i=0;i<array.length;i++)
	        {   
	            if(array[i].isFile())//如果是文件
	            {   
	                    for (int j = 0; j < deep; j++)//输出前置空格
	                    System.out.print(" ");
	                // 只输出文件名字  
	                //System.out.println( array[i].getName()); 
	                list.add("F:/qqt/"+array[i].getName());
	               // System.out.println(imgs[i]);
	                // 输出当前文件的完整路径   
	               // System.out.println("#####" + array[i]);   
	                // 同样输出当前文件的完整路径   大家可以去掉注释 测试一下   
	               // System.out.println(array[i].getPath());   
	            }
//	            else if(array[i].isDirectory())//如果是文件夹
//	            {  
//	                    for (int j = 0; j < deep; j++)//输出前置空格
//	                    System.out.print(" ");
//
//	                    System.out.println( array[i].getName());
//	                    //System.out.println(array[i].getPath());
//	                    //文件夹需要调用递归 ,深度+1
//	                getFile(array[i].getPath(),deep+1);  
//	            }   
	        }   
	    } 
}

 

国内AI能力地图:6类真实场景落地指南 大模型应用已从概念验证进入业务深水区,核心挑战不再是‘有没有AI’,而是‘在哪个具体动作中AI能少让我返工’。理解AI能力需回归基础:它本质是基于提示工程与数据结构的条件化推理系统,其技术价值取决于与现有工作流的摩擦系数——低学习成本、高结构化适配、强上下文感知。典型应用场景覆盖办公提效(会议纪要生成、行动项提取)、创意生产(国风图像可控生成、视频分镜协同)、技术开发(API集成稳定性、日志智能诊断)、行业垂类(法律案情推理、医疗辅助决策)等。本文聚焦2024年Q2实测数据,揭示国产AI在合规约束、中文语境 阅读详情

相关推荐

【信息科学与工程学】【广告科学】第四十四篇 广告平台投放和广告计费类算法01

全行业的中国企业广告投放模型总表。行业分类依据《国民经济行业分类》(GB/T 4754—2017)的门类/大类 ,产品层参考"主营产品统计代码"行业—产品映射 ,平台算法以巨量引擎、腾讯广告等官方文档为硬支撑 ,合规部分严格对齐《互联网广告管理办法》以及2026年市场监管部门最新合规提示 。编号类型(门类)行业(大类)企业及产品内容列表投放模型投放平台投放人群欲望激发维度面向人群模式(地域/文化/年龄/角色)001A 农林牧渔01 农业北大荒/中粮:五常大米、面粉、食用油、杂粮品牌曝光 + 电商转化双轨(C

weixin_49199313的博客 1647

美图秀秀自由拼图android实现

package com.myView; import com.androidphoto.unique.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import ...

WEBCODE 414

android仿美图秀秀 图片叠加拖动旋转

android仿美图秀秀 图片叠加、拖动、旋转等操作。

美图秀秀java代码,【Java】SpringMvc整合美图秀秀M4(头像编辑器)

美图秀秀M4 头像编辑器是一款集旋转裁剪、特效美化、人像美容为一体的在线头像编辑工具。适用于有设置头像需求的BBS、SNS、微博和社区等Web产品。美图秀秀,JAVA提供了示例可参考,流式上传 或者 标准表单上传,于是采用标准表单上传。List items = upload.parseRequest(request);//得到所有的文件复制代码以上为截取部分代码,美图的API采用的common-f...

weixin_33520849的博客 585

实现一个类似美颜相机(美图秀秀应用)的Android应用程序

实现一个类似美颜相机(美图秀秀应用)的Android应用程序

1寸2寸证件照生成器

1寸2寸证件照生成器

android自由调节图片大小,美图秀秀自由拼图android实现

package com.myView;import com.androidphoto.unique.R;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.gr...

weixin_33477335的博客 328

用OpenCV实现证件照的背景替换

通过OpenCV中K-Means方法证件照的背景替换。注意:不能直接运行应用程序的需要在系统中安装.Net环境或者Visual C++2005 RUNTIME LIBRARIES以上版本。

技术分享 — Java如何实现证件照换底色

图片是由一个个像素块组成的,每个像素块对应一个RGB颜色值。将照片加载到内存,转换成一个二维的RGB矩阵,想办法识别到边缘的背景色,遍历二维矩阵,将跟背景色相同的颜色值替换为目标颜色值(如:蓝色背景 更换为 白色背景)

weixin_36063821的博客 3696

PixelLib实现图像分割(证件照抠图换背景)

Python调用PixelLib实现图像分割(证件照抠图换背景) https://xercis.blog.youkuaiyun.com/article/details/108001828

纯相位全息图优化算法综述

除此之外,还有许多用于减少斑点噪声的非迭代方法,例如:采用下采样掩膜的采样纯相位全息图(Sampled-Phase-only Hologram)方法、模式化相位掩膜(Patterned Phase-Only Hologram)方法、双相位方法(Double-Phase Method),以及使用非随机相位掩膜的方法(Random Phase-Free Method)等。迭代算法通常由一个对目标全息图的近似出发,经过一系列的重复操作不断优化这个近似全息图,直到该近似所得到的重建图像满足一定的误差要求;

ZhongKeWeiXing的博客 1426

《易复团队》第5次作业:项目选题

第13组《易复团队》第5次作业:项目选题

ouc_se_group13的博客 496

【遥感数字图像处理(朱文泉)】第四章 变换域处理方法

变换域的处理方法

甜子yu的博客 4308

7款真正可用的免费AI绘图工具实战指南

AI图像生成已从技术概念进入工程实践阶段,其核心在于模型能力、提示词工程与任务匹配的三维协同。Stable Diffusion、DALL·E 3等主流模型在文本理解、写实渲染和风格控制上各具优势,但免费工具的真实可用性远不止于‘能生成’——更取决于中文语义解析精度、生成稳定性、输出无损性及可控编辑能力。本文聚焦创意工作者高频刚需场景:文字转图初稿、艺术风格探索、照片级人像、UI底图生成、商业图库素材、AI修图增强与高精度局部重绘,结合真实项目中验证的提示词结构、CFG Scale调参逻辑、负面提示词组合策略

vanadiumlin 407

ETAP实战:如何用仿真软件快速绘制标准一次接线图(附模板下载)

本文提供了一套基于ETAP软件高效绘制标准一次接线图的完整实战工作流。从国标符号库配置、绘图模板创建,到核心设备绘制、参数标注,再到利用软件模型进行拓扑检查与短路电流校核,手把手教你实现从零到一的专业图纸设计。文末附有实用模板下载,助你大幅提升电力设计效率与图纸质量。

weixin_29291573的博客 510

国赛数学建模高教社杯历届优秀论文全集

包含了2004到2023年高教社的赛题及优秀论文。

BanDeng001的博客 3284

Java实现证件照简单换背景

以下算法只能由一种纯色背景粗略更换为另一种纯色背景,以下将背景由蓝色转为白色。基本原理是读取原图片的像素矩阵的argb值,如果在蓝色区域附近,就将它替换为白色。使用ImageIO.read(file)读入原图片。

m0_52108067的博客 1969

【零基础入门unity游戏开发——2D篇】大大简化了地形创建流程,减少Rule Tile的使用 —— AutoTile自动平铺瓦片的使用介绍

Unity 2D游戏开发中的AutoTile技术详解 摘要:本文详细介绍了Unity 2D游戏开发中的AutoTile技术,这是一种智能瓦片系统,能够自动处理地形和场景拼接。文章首先讲解了AutoTile的基本概念和优势,然后分步骤指导读者如何安装2D Tilemap Extras包、创建AutoTile、设置参数和绘制遮罩。通过实际案例演示了AutoTile的使用方法,并比较了AutoTile与Rule Tile的适用场景。最后指出AutoTile虽然使用方便,但对素材要求较高,开发者应根据项目需求选择合

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 728

java入门之 美图相机-缓存功能

让图片快速出现(BufferedImage)

Y_999777的博客 660

ABB机器人刷功能选项全一篇就够——不怕丢失程序和IO配置数据

ABB机器人刷功能选项

m0_66701835的博客 1258

SAM3 LoRA Fine-Tuning|SAM3微调(完全对齐官方训练和配置)

本文介绍了基于官方SAM3模型使用LoRA技术进行图像目标检测与分割微调的项目。项目完全对齐官方训练配置,支持多类别高效微调,且不影响原模型的开放词汇提示能力。微调后模型在航拍图像中对道路、车辆等目标的分割效果显著提升,误检率降低。 项目提供完整的训练和推理流程: 支持双卡并行训练,显存需求大(完整微调需30G+显存) 提供训练脚本和配置文件,可灵活调整参数 包含推理可视化工具,支持与原模型效果对比,内置训练结果分析工具,可生成指标对比图 数据集采用COCO格式。

weixin_46248968的博客 357

java美图秀秀_[Java教程]简易版美图秀秀_星空网

简易版美图秀秀2016-10-300 简易板美图秀秀 灰度 黑白 底片 模糊 马赛克 var context1 = canvas1.getContext("2d"); var context2 = canvas2.getContext("2d"); var img = new Image(); img.sr...

weixin_33418394的博客 323

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android Studio 编写美图秀秀的简单demo

 借鉴在慕客网上的学习,给大家分享一下。目前在自学之中,没什么编程背景,JAVA也在自学之中。希望志同道合的朋友能留个言,大家一起交流。首先在主界面创建了3个按钮,这三个按钮分别是通过不同的机理来处理图像。PrimaryColor通过选取图像像素的HSI值来改变图像的色调,饱和度,亮度。public static Bitmap handleImageEffect(Bitmap bm,float h...

bentleydelll的博客 2699

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java实现图像美颜效果

图像原理 对计算机中的一张图片,我们可以将其看成一个宽w*高h的二维数组,即一张图片=int [w][h],在这个二维数组中每个位置对应着一个int值,它们就是这张图片中每个点的像素值,那么我们要对这张图像做处理,实际上就是对这张图片的二维数组进行操作。下面我们首先来实现将原图显示在界面上吧。 实现原图显示 import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io

qq_44836027的博客 2123

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: Java实现已知IP地址和子网掩码获取网络号和主机号
下一篇: java基于SSM框架使用POI的方式导出到excel表
记录bug的人
博客等级 码龄9年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值