概述
package com.jeeplus.common.utils;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
/**
* 图片合成及图片上添加文字
*/
public class ImageComposite {
public static final void overlapImage(String bigPath, String smallPath,String outPath,int x,int y,int width,int height) {
try {
BufferedImage big = ImageIO.read(new File(bigPath));
BufferedImage small = ImageIO.read(new File(smallPath));
Graphics2D g = big.createGraphics();
/* int x = (big.getWidth() - small.getWidth()) / 2;
int y = (big.getHeight() - small.getHeight()) / 2;*/
/*
* 300:小图片位置X
* 880:小图片位置y
* 40:小图片横向长度
* 400:小图片纵向长度
*/
//
g.drawImage(small, 300, 880, 40, 400, null);
g.drawImage(small, x, y, width, height, null);
g.dispose();
ImageIO.write(big, "png", new File(outPath));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 图片上加字
*/
public static void createStringMark(String filePath, String markContent, Color markContentColor,
float qualNum, String outPath,String typeFace,int fontType,int fontSize,int x,int y) {
ImageIcon imgIcon = new ImageIcon(filePath);
Image theImg = imgIcon.getImage();
int width = theImg.getWidth(null) == -1 ? 200 : theImg.getWidth(null);
int height = theImg.getHeight(null) == -1 ? 200 : theImg.getHeight(null);
System.out.println(width);
System.out.println(height);
System.out.println(markContent);
BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bimage.createGraphics();
g.setColor(markContentColor);
g.setBackground(Color.red);
g.drawImage(theImg, 0, 0, null);
g.setFont(new Font(typeFace, fontType, fontSize)); // 字体、字型、字号
g.drawString(markContent, x, y); // 画文字的位置
g.dispose();
try {
FileOutputStream out = new FileOutputStream(outPath); // 先用一个特定的输出文件名
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
param.setQuality(qualNum, true);
encoder.encode(bimage, param);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//
overlapImage("C:/aa/1.png", "C:/aa/fb.png","C:/aa/3.png");// 图片合成
//
createStringMark("C:/aa/3.png", "加字内容", new Color(137, 137, 137), 100, "C:/aa/3.png"); //图片上加字
}
}
最后
以上就是爱撒娇电脑为你收集整理的图片拼接合并及图片上添加文字的全部内容,希望文章能够帮你解决图片拼接合并及图片上添加文字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复