`

java 将两张相片合成一张,开发实用类

 
阅读更多

 实现将两压缩好的图片 写在一张画布上

思路,先成一个足够大的画布 放入两张相片

 

 

以下代码需要改进

 

import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;


public class IMG {
 /**
     *
     * @param filesrc
     * @param logosrc
     * @param outsrc
     * @param x 位置
     * @param y 位置
     */
  public void composePic(String filesrc,String logosrc,String outsrc,int x,int y) {
    try {
        File bgfile = new File(filesrc);
        Image bg_src = javax.imageio.ImageIO.read(bgfile);
        
        File logofile = new File(logosrc);
        Image logo_src = javax.imageio.ImageIO.read(logofile);
        
        int bg_width = bg_src.getWidth(null);
        int bg_height = bg_src.getHeight(null);
        int logo_width = logo_src.getWidth(null);;
        int logo_height = logo_src.getHeight(null);
 
        BufferedImage tag = new BufferedImage(bg_width, bg_height, BufferedImage.TYPE_INT_RGB);
        
        Graphics2D g2d = tag.createGraphics();
        g2d.drawImage(bg_src, 0, 0, bg_width, bg_height, null);
        
        g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,1.0f)); //透明度设置开始 
        g2d.drawImage(logo_src,x,y,logo_width,logo_height, null);           
        g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER)); //透明度设置 结束
        
        FileOutputStream out = new FileOutputStream(outsrc);
        ImageIO.write(tag, "jpg", out);//写图片
       /* JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
        encoder.encode(tag);*/
        out.close();
    }catch (Exception e) {
        e.printStackTrace();
    }
  }
 
  public static void main(String args[]) {
      Long star = System.currentTimeMillis();
      IMG pic = new IMG();
      pic.composePic("f:\\7.jpg","f:\\6.jpg","f:\\out.jpg",490,360);
      Long end =System.currentTimeMillis();
      System.out.print("time====:"+(end-star));
  }
}

分享到:
评论

相关推荐

    Java开发过程中常用的实用类

    ### Java开发过程中常用的实用类 在Java开发过程中,利用一些内置的实用类可以极大地提高开发效率,简化代码逻辑。本文将详细介绍几个常见的实用类及其应用方法。 #### 一、Math类 `Math` 类提供了丰富的数学运算...

    将汉字和图片合成一张图片

    在IT领域,特别是图像处理与图形学领域,将汉字或任意文本添加到图片上是一项非常实用的技术。这种技术被广泛应用于各种场景,如社交媒体、广告设计、新闻报道等。接下来,我们将基于提供的代码片段深入探讨如何实现...

    Java 实用系统开发指南[彭晨阳]

    《Java实用系统开发指南》是彭晨阳先生的一部深入探讨Java编程技术及其在系统开发中应用的专业著作。这本书以其丰富的实例和详细的讲解,为读者提供了全面了解和掌握Java编程及系统开发的宝贵资源。 首先,Java作为...

    java实用系统开发指南(无密钥)part1

    《Java实用系统开发指南》利用8个综合实例介绍了多个Java系统的设计和开发,重点描述了J2EE实用系统的架构设计和应用。《Java实用系统开发指南》的特点是从可复用的面向对象设计的高度总结出解决同类问题的通用规律...

    JAVA常用类总结

    JAVA常用类,java封装类,String类和StringBuffer类......

    java实用系统开发指南-1

    本书是国人原创的第一本涉及框架、组件构件等重用概念的Java畅销书,该书通过8个系统,指出了一个成熟Java/J2EE系统设计开发的正确之道:Model(建模)、Patterns(模式)和Framework(框架)。 需求UML分析与域...

    java的实用类 java基础

    java的实用类 java基础

    《Java Web应用开发技术实用教程》-王红-电子教案-5124.rar

    《Java Web应用开发技术实用教程》是一本专为学习Java Web开发的初学者和进阶者设计的教材。王红老师的这本教程旨在通过详细、易懂的方式教授读者如何构建和部署基于Java技术的Web应用程序。Java Web开发是现代...

    Java+Web开发实践教程ppt课件Java实用源码整理learns

    【Java+Web开发实践教程】是一门深入浅出的课程,旨在帮助学习者掌握Java语言在Web开发中的应用。这门教程通过PPT课件的形式,结合Java实用源码的整理,提供了丰富的学习材料,适合初学者和有一定基础的开发者进行...

    java实用系统开发指南源码

    《Java实用系统开发指南》是一本深入探讨Java系统设计与开发的专业书籍,它以其独特的实践方式,通过8个具体的综合实例向读者展示了J2EE平台上的实用系统构建过程。源码包中的文件名称"Java.实用系统开发指南_源代码...

    java 用javafx+ffmepg+百度语音合成,视频剪切工具

    JavaFX与FFmpeg结合开发的视频剪切工具是一款强大的应用程序,它允许用户对视频进行精细化操作,如指定时间段剪切视频、自动生成字幕并添加语音、以及将多个视频合并成一个新视频。这个工具利用了JavaFX的图形用户...

    《Java面试关键与综合软件项目开发全程实战》part.01 高清完整PDF版

    《远标软件开发名企就业系列:Java面试关键与综合软件项目开发全程实战》不仅系统地讲解了Java编程的基础知识以及综合软件项目实战开发,而且完全再现了Java技术达人阿蜜果曾经精彩实用的学习经验以及丰富的JavaWeb...

    集合与常见的实用类

    除了集合框架之外,Java还提供了许多实用类来帮助开发者简化开发过程,提高代码的可读性和可维护性。这些实用类主要包括但不限于: - **String**:用于表示不可变字符串的对象。 - **StringBuilder/StringBuffer**...

    java案例实用程序

    "Java案例实用程序"集合了10个具有实践价值的Java应用程序,这些案例旨在帮助开发者更好地理解和掌握Java的核心特性和常见应用场景。下面我们将逐一探讨这些知识点。 1. **控制结构与流程管理**:在Java中,基础的...

    Java开发的简单WEB服务器源码Java实用源码整理learns

    标题中的“Java开发的简单WEB服务器源码Java实用源码整理learns”表明这是一个关于Java Web服务器开发的项目,可能是为了教学或者学习目的而编写的。这个项目可能包含了一个简单的HTTP服务器实现,允许用户理解Web...

    Java编程语言的计算机软件开发应用.pdf

    在计算机软件开发中,Java的多线程编程可以更充分地利用CPU资源,从而提高软件编程的效率,并进一步提升了开发出来的软件的实用性。Java的网络编程能力允许实现信息模块化,提高查询效率,这使得网络编程更加高效和...

    《Java_Web应用开发实用教程》练习答案

    《教育部实用型信息技术人才培养系列教材·Java Web应用开发实用教程》分为3篇,共21章:第1篇Java Web开发基础知识分为9章,强调基本概念、技术和方法的阐述,注重联系实际的操作,包括Web应用开发概述、开发与运行...

    JAVA面试关键与综合软件项目开发全程实战

    础知识以及综合软件项目实战开发,而且完全再现了Java技术达人阿蜜果曾经精彩实用的学习经验以及丰富的JavaWeb项目开发实战经验。阿 蜜果还根据自己多年的面试经验及一线开发经验,精心地把网上浩如烟海的Java面试...

    java2实用教程

    《java2实用教程》涵盖了Java语言的基础知识和一些高级特性,适合初学者系统学习Java编程。以下是书中各章节的知识点总结: 第一章:JAVA语言入门 1.1 JAVA的诞生:介绍了Java语言的历史背景,它是由Sun ...

    Java实用系统开发指南(彭晨阳) 随书光盘 CD 源码

    《Java实用系统开发指南》是彭晨阳先生撰写的一本专为Java开发者量身打造的实战书籍,旨在帮助读者深入理解和应用Java进行实际系统开发。随书附带的光盘CD包含了1到8章的所有源码,这为读者提供了丰富的实践材料,...

Global site tag (gtag.js) - Google Analytics