近期添加了一个功能:将文字添加到图片中。
在生活小助手-->图片添加文字 模块
在文字填上你要添加的文字,
然后上传你要处理的图片
点击提交就可以了
最后点击红色文字部分就可以查看生成的图片
原图
结果图
代码部分:
将文字添加到图片
/**
/**
* 获取加入了文字的图片
* @param multipartFile
* @param text
* @param textColor
* @return
*/
private ByteArrayOutputStream getPicOutputSteam(MultipartFile multipartFile,String text,String textColor,String fontName){
InputStream inputStream = null;
ByteArrayOutputStream outputStream = null;
try{
//获取源图片的输入流
inputStream = multipartFile.getInputStream();
//获取源图片
Image img = ImageIO.read(inputStream);
//获取流中的长宽
//宽
int width = ((BufferedImage) img).getWidth();
//长
int height = ((BufferedImage) img).getHeight();
BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//图形,通过操作这个图形最终生成我们的图片
Graphics2D g = bimage.createGraphics();
//设置字体颜色
g.setColor(ColorUtil.getColor(textColor));
//设置底色
g.setBackground(Color.white);
g.drawImage(img, 0, 0, null);
//字体
Font font = null;
//字体大小
int fontSize = height/10;
font = new Font(null, Font.BOLD, fontSize);
//将字体放置到画板中
g.setFont(font);
//文字放置在图片的坐标
int fontX = fontSize;
int fontY = height - fontSize;
g.drawString(text, fontX, fontY);
g.dispose();
outputStream = new ByteArrayOutputStream();
//往输出流中写数据
ImageIO.write(bimage, PicHandlerConstant.PicType.JPEG, outputStream);
}catch (Exception e){
log.error("PicAddTextServiceImpl getPicOutputSteam has error ...",e);
return null;
}finally {
//关闭各种资源
StreamUtil.inputClose(inputStream);
StreamUtil.outputClose(outputStream);
}
return outputStream;
}
代码如果有不合理的地方请大家支出,让我加深学习。