最近2天在做移动端的项目,需要安卓 ios将拍完照的身份证正面和反面以Base64字符串传递给我,我拿到2个图片的地址,将这2张图片通过后台java技术合成到一张A4纸上之后以图片格式给移动端一个URL地址。所以利用了java的文件流操作。

java中的文件操作很复杂,而且只有2个要点第一:将文件解析成流,将流读取出来,或者将一些数据写入到文件中去,

而针对图片的操作自己需要利用图片的流进行读取,另外用到了绘图工具,首先绘制一张A4纸,之后将图片解析而成流的形式,绘制到A4纸上,最后将整个大图片写入到一个新的文件中去:来上代码:

  
               参数说明: 第一张和第二张图片路径   <span style="font-family: Arial, Helvetica, sans-serif;">firstimagepath    </span><span style="font-family: Arial, Helvetica, sans-serif;">secondimagepath</span>
                          合成A4纸上的图片路径    <span style="font-family: Arial, Helvetica, sans-serif;">mbdest</span>
                          设定A4纸的宽度  高度    width  height
                          合成图片宽度:<span style="font-family: Arial, Helvetica, sans-serif;">widthCut</span>
                          <span style="font-family: Arial, Helvetica, sans-serif;">float cut_proportion_paper=1.75f;</span>
          

/**
* 2张图片文件合成到A4纸上
*/
public static void CompieImage(String mbdest,int widthCut,float cut_proportion_paper,int width,int height,String firstimagepath,String secondimagepath){int heightCut = (int)(widthCut/cut_proportion_paper);
//合成图片
//搞出2个类
BufferedImage image = new BufferedImage(width, height,
BufferedImage.SCALE_DEFAULT);
Graphics graphics = image.getGraphics();
BufferedImage img = null;
BufferedImage img2 = null;
try {
//分别从文件中读取流::
//第一张图片的全路径
img = ImageIO.read(new FileInputStream(firstimagepath));
//第二张图片的全路径
img2 = ImageIO.read(new FileInputStream(secondimagepath));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();}
//画出一个白色的A4纸::
graphics.setColor(Color.white);
graphics.fillRect(1, 0, width, height);
int positionPaperX = width/2 - widthCut/2;
int positionPaperY = height/2 - heightCut;
graphics.drawImage(img, positionPaperX, positionPaperY, widthCut, heightCut, null);
graphics.drawImage(img2, positionPaperX, positionPaperY+heightCut, widthCut, heightCut,null);
graphics.dispose();
//------合成文件为文件起名字//将文件写入到新的目的地mbdest目的地地址
try {
ImageIO.write(image, "JPG", new File(mbdest));
} catch (IOException e) {
e.printStackTrace();
}}

哈哈大功告成!!!!!!!!

java 图片合成到A4纸上相关推荐

  1. 太酷啦!我在A4纸上看宫崎骏动画

    转载自:量子位 随意弯曲.任意抖动,丝毫不影响我在纸上看<龙猫>. 这不是什么屏幕黑科技,而是AI合成的图像. 来自港中文-商汤联合实验室.浙江大学.英伟达的研究人员,用AI将图片视频投影 ...

  2. 我在A4纸上看宫崎骏动画

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 随意弯曲.任意抖动,丝毫不影响我在纸上看<龙猫>. 这不是什么屏幕黑科技,而是AI合成的图像. 来自港中文-商汤联合实验室.浙江 ...

  3. 苹果电脑打印A4纸上纸盒的细线很浅

    苹果电脑打印A4纸上纸盒的细线很浅 把ai文件转成PDF,再在打印设置里设置成"以图片形式"打印(无缩放),效果好些.

  4. 如果把一张大图分开matlab,如何把一张大图分开在几张A4纸上打印出来

    如何把一张大图分开在几张A4纸上打印出来 作者:小龙博客 2011年08月6日 6条评论 分类:电脑技巧 软件 在生活和工作中,所用的打印机打印的纸张宽度都很有限,以A4纸最为常见,所以要打印较大的图 ...

  5. 如何将身份证扫描到A4纸上?这3个方法简单有效

    分享3个简单有效的将身份证扫描到一张A4纸上的方法,全部都是看一遍就会,扫描后的身份证不仅可以直接进行打印,还能在手机上保存为电子版,随时都可以进行打印. 1.万能图片转换器 一个非常全能的图片格式处 ...

  6. 如何将证件照片打印在A4纸上

    打印证件照片时,我们一般使用的都是专业的照片纸,连接的也是照片打印机,但是有些用户会有一些其他的要求,比如把证件照片打印在A4纸上.这对于专业的证件照片打印软件来说是很简单的,下面我们就介绍一下操作方 ...

  7. wps打印缩放到一页_WPS文档过长时,如何在A4纸上完美打印

    本教程适用版本:WPS Office 2019 PC版点此使用 现在WPS已经是不可或缺的办公软件了,大家在办公时肯定会遇到Excel表格打印的问题,小编就会时常遇到一个头疼的问题,就是在表格过长的时 ...

  8. 如何在A4纸上排版多个二维码?

    随着二维码技术的成熟以及使用的普及,很多用户在打印二维码时不再局限于专业二维码打印机,也会连接办公室的普通打印机,在普通的A4纸上打印二维码.那么,具体的操作步骤如何呢,我们下面详细介绍. 首先打开条 ...

  9. 如何在A4纸上打印标签

    我们在制作条码标签的时候,一般都是使用标签打印机打印在专门的标签纸上.但是也有一种情况就是设计完标签后在A4纸上打印,这样一张纸上就可以打印多张标签.具体如何操作小编将详细介绍. 一.首先我们打开条码 ...

最新文章

  1. uniapp移动端H5在线预览PDF等文件实现源码及注解
  2. 上传图片,多图上传,预览功能,js原生无依赖
  3. 分析与设计(AD)简介(3)
  4. 吐血整理:24种可视化图表优缺点对比,一图看懂!
  5. Java 生成滑动图片验证码, 阴影, 切块
  6. 005 Android之数据存储
  7. 聚合型神器!有了他,手机里app可以删一半
  8. SecureCRT中使用 rz 上传文件 遇到 rz: command not found 的解决办法
  9. C - Digital Path 计蒜客 - 42397(dp记忆化搜索)
  10. 码农的自我修炼之路-----BST
  11. 用隐喻来更充分地理解软件开发
  12. $(window).load(function(){})跟$(document).ready(function(){})跟$(function(){})区别
  13. 防火墙转发流量的原理
  14. 56个免费资源网站,总有你想要的。
  15. 计算机专业论文选题的8个方法
  16. mysql 并发 链接失败_瞬发大量并发连接 造成MySQL连接不响应的分析
  17. rabbitMQ修改默认端口
  18. 英特尔发布Xeon D-1600处理器:10nm工艺 性能提升40%
  19. 阿里云认证证书合集(一起来考证)
  20. 夜访北京互联网公司:「码农」十点下班很正常,加班成纠纷焦点

热门文章

  1. hashcode怎么算
  2. 【无标题】免费版 基础实验(答案)
  3. 温商机器人企业_再获殊荣!当贝揽下“2019年度十佳温商科创企业”奖项 | 智能扫地机器人评测...
  4. NATv6是个笑话,那么IPv6本身呢?
  5. 【积】时间序列得相似性
  6. 使用msgpack-lite打包数据
  7. Vue-实现自适应屏幕高度的方法
  8. 高效远程控制另一台电脑的3种方法,提升工作效率!
  9. 2017.10.26 社团活动总结
  10. 【评测】HEK293细胞无血清培养基