`
uule
  • 浏览: 6351750 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

JAVA图片上添加文字或图片

 
阅读更多
package com.test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

import com.common.common.CommonHandleTrans;
import com.common.common.DateUtil;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageDecoder;
import com.sun.image.codec.jpeg.JPEGImageEncoder;




public class TestImage {

	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {
		//exportImg2("万魔声学","d:/logo.jpg");
	}

	
	public static void exportImg1(){
		int width = 100;   
        int height = 100;   
        String s = "你好";   
           
        File file = new File("d:/image.jpg");   
           
        Font font = new Font("Serif", Font.BOLD, 10);   
        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
        Graphics2D g2 = (Graphics2D)bi.getGraphics();   
        g2.setBackground(Color.WHITE);   
        g2.clearRect(0, 0, width, height);   
        g2.setPaint(Color.RED);   
           
        FontRenderContext context = g2.getFontRenderContext();   
        Rectangle2D bounds = font.getStringBounds(s, context);   
        double x = (width - bounds.getWidth()) / 2;   
        double y = (height - bounds.getHeight()) / 2;   
        double ascent = -bounds.getY();   
        double baseY = y + ascent;   
           
        g2.drawString(s, (int)x, (int)baseY);   
           
        try {
			ImageIO.write(bi, "jpg", file);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}
	
	public static void exportImg2(String username,String headImg){
		try {
			//1.jpg是你的 主图片的路径
	        InputStream is = new FileInputStream("d:/1.jpg");
	        
	        
	        //通过JPEG图象流创建JPEG数据流解码器
	        JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(is);
	        //解码当前JPEG数据流,返回BufferedImage对象
	        BufferedImage buffImg = jpegDecoder.decodeAsBufferedImage();
	        //得到画笔对象
	        Graphics g = buffImg.getGraphics();
	        
	        //创建你要附加的图象。
	        //小图片的路径
	        ImageIcon imgIcon = new ImageIcon(headImg); 
	        
	        //得到Image对象。
	        Image img = imgIcon.getImage();
	        
	        //将小图片绘到大图片上。
	        //5,300 .表示你的小图片在大图片上的位置。
	        g.drawImage(img,400,15,null);
	        
	        //设置颜色。
	        g.setColor(Color.BLACK);
	        
	        
	        //最后一个参数用来设置字体的大小
	        Font f = new Font("宋体",Font.PLAIN,25);
	        Color mycolor = Color.red;//new Color(0, 0, 255);
	        g.setColor(mycolor);
	        g.setFont(f);
	        
	        //10,20 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。
	        g.drawString(username,100,135);
	        
	        g.dispose();
	        
	        
	        OutputStream os;
		
			//os = new FileOutputStream("d:/union.jpg");
	        String shareFileName = "\\upload\\" + System.currentTimeMillis() + ".jpg";
			os = new FileOutputStream(shareFileName);
			 //创键编码器,用于编码内存中的图象数据。	        
	        JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
	        en.encode(buffImg);	        
	        
	        is.close();
	        os.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ImageFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        
	}
	
}

 

分享到:
评论

相关推荐

    用Java给图片添加文字或图像水印

    在本文中,我们将深入探讨如何使用Java编程语言为图片添加文字或图像水印。这个话题源于一个名为"Java水印.rar"的压缩包文件,它包含了一段Java源代码,用于实现这一功能。该压缩包有四个文件:RunIt.bat(运行脚本...

    基于Java给图片添加文字或图片水印

    在Java编程环境中,给图片添加文字或图片水印是一项常见的图像处理任务,广泛应用于版权保护、品牌宣传等领域。本项目“基于Java给图片添加文字或图片水印”旨在教授如何利用Java实现这一功能,适用于大学生的课程...

    Java编写的图片上加文字Demo

    这个"Java编写的图片上加文字Demo"项目利用Eclipse 4.2.1作为开发环境,实现了在本地图片上动态添加文字的功能,允许用户自定义字体样式,从而制作出具有个性化的水印。下面我们将深入探讨这一技术实现的关键知识点...

    java图片上添加文字代码.rar

    这个名为"java图片上添加文字代码.rar"的压缩包很可能是包含了一个或多个Java类,这些类提供了将文字添加到图片上的功能。让我们深入探讨一下如何在Java中实现这样的功能,以及涉及到的相关技术。 首先,我们需要...

    java 图片添加文字

    java 图片添加文字,java 图片添加文字

    Java原有图片加文字

    Java原有图片上加文字,对图片进行处理。

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...

    JAVA生成二维码,图片合成,图片添加文字对应资源和代码

    在本教程中,可能有代码演示如何在生成的二维码或合成图片上添加文字,如添加标题或描述。 6. **代码示例**: `ZxingUtils.java`文件很可能包含了上述操作的实现。例如,可能有一个名为`generateQRCode`的方法,...

    java 给图片加文字,加二维码,并且以流的形式给前端展示

    以上就是关于"Java给图片加文字,加二维码,并且以流的形式给前端展示"的详细知识,包括了图像处理、资源读取、JAR部署注意事项以及前后端交互的实现方法。这些技术在实际开发中非常常见,掌握它们能够帮助你更好地...

    java文字转图片

    在Java编程领域,将文字转换为图片是一种常见的需求,它广泛应用于验证码生成、文本水印、数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,主要涉及以下几个知识点: 1. **Graphics2D API** Java中的`...

    Java实现在图片上添加水印图片和水印文字.doc

    Java 实现图片添加水印图片和水印文字 Java 是一种广泛应用于企业级开发的编程语言,拥有强大灵活的图形处理能力。本文将详细介绍如何使用 Java 实现图片添加水印图片和水印文字,并对代码进行解释。 图片添加水印...

    JAVA处理图片 加文字水印以及灰色透明背景

    JAVA处理图片 加文字水印以及灰色透明背景,处理图片。

    java给图片添加水印

    在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...

    java识别pdf图片中的文字

    综上所述,Tess4J是Java环境中利用Tesseract OCR进行PDF图片文字识别的首选工具。通过合理地利用其API和优化技巧,开发者可以高效地从PDF图像中提取文字,用于数据分析、自动化处理等多种用途。

    java 图片水印 改变图片大小

    在Java编程领域,图片处理是一项常见的任务,包括添加水印、改变图片大小等。这里我们将深入探讨这些知识点,以及如何在Struts2框架下实现它们。 首先,让我们了解"图片水印"。水印通常用于保护版权或者为图片增加...

    java 图片添加水印

    java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字

    JAVA实现给图片增加图片水印或者文字水印-依赖包

    在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是视觉美化。水印可以是图片形式,也可以是文字形式。本教程将详细讲解如何使用Java来实现这一功能,重点在于介绍所需的依赖包。 首先,我们...

    java 操作图片,往图片写字,将多图片合并

    根据给定文件的信息,本文将围绕Java操作图片的方法展开,主要涵盖往图片上添加文字以及合并多张图片的功能。这些技术在制作许可证书、安全证书等应用场景中非常实用。 ### Java操作图片概述 #### 一、加载图片 在...

    处理linux java图片中文字显示方块乱码

    java——图片字体显示方块问题处理 /usr/java/jdk1.7.0_80/jre/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf /usr/java/jdk1.7.0_80/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf

    java 水印(水印适应图片大小,但个别图片太小不支持)

    水印是在图像或文档上添加的一种视觉标记,它可以是文字、图像或者图形,用于表明所有权、版权信息或增加视觉效果。在数字图像处理中,水印通常被嵌入到图像的数据层中,不影响原始图像的观看,但在一定程度上可以...

Global site tag (gtag.js) - Google Analytics