java读图片显示到前端_java从前端获取参数添加到图片后返回整张图片

java从前端获取参数添加到图片后返回整张图片

以后为整个servlet代码,请自行加入到j2ee工程。

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.IOException;

import java.io.PrintWriter;

import javax.imageio.ImageIO;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import sun.misc.BASE64Encoder;

/**

*

* java从前端获取参数添加到图片后返回整张图片

*

* @author gu

* @version 1.0

*/

public class PictureServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = -2243668400971698202L;

/**

* 日志

*/

private static final Logger logger = Logger.getLogger(PictureServlet.class);

@SuppressWarnings("deprecation")

@Override

protected void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("UTF-8"); //微信服务器POST消息时用的是UTF-8编码,在接收时也要用同样的编码,否则中文会乱码;

response.setCharacterEncoding("UTF-8"); //在响应消息(回复消息给用户)时,也将编码方式设置为UTF-8,原理同上;

PrintWriter writer = response.getWriter();

String imgFile = request.getRealPath("") + "/WEB-INF/1.jpg";

try {

String parameter = request.getParameter("parameter");

String responseHtml=null;

if(parameter!=null&&!parameter.equals("")&&!parameter.equals("undefined")){

String base64Img = getImageStr(imgFile,parameter);

if(base64Img!=null){

responseHtml=(

"中文"

+ "

");

}

}

if(responseHtml==null){

responseHtml="中文"

+ "暂无图片。";

}

writer.write(responseHtml);

logger.info("generate picture success.");

} catch (Exception e) {

logger.error("info error:" + e.getMessage(), e);

}

}

/**

* @Description: 根据图片地址转换为base64编码字符串

* @return

*/

@SuppressWarnings("restriction")

public static String getImageStr(String imgFile, String parameter) {

ByteArrayOutputStream os =null;

try {

// 读取原图片信息

File srcImgFile = new File(imgFile);// 得到文件

BufferedImage image = ImageIO.read(srcImgFile);// 文件转化为图片

Graphics g = image.getGraphics();

((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

Font font = new Font("微软雅黑 Light", Font.BOLD, 30);

g.setFont(font);

g.setColor(Color.black);

font = new Font("Bahnschrift SemiLight", Font.PLAIN, 66);

g.setFont(font);

g.drawString(parameter, 350, 756);

font = new Font("微软雅黑 Light", Font.BOLD, 45);

g.setFont(font);

g.drawString("kg", 535, 633);

g.drawString("cm", 535, 756);

g.dispose();

image.flush();

os = new ByteArrayOutputStream();// 新建流。

ImageIO.write(image, "jpg", os);// 利用ImageIO类提供的write方法,将bi以图片的数据模式写入流。

byte b[] = os.toByteArray();// 从流中获取数据数组。

String base64String = new BASE64Encoder().encode(b);

os.close();

return base64String;

} catch (Exception e) {

logger.error("gererate picture error:"+e.getMessage(),e);

}finally{

try {

os.close();

} catch (IOException e) {

logger.error("close ByteArrayOutputStream error:"+e.getMessage(),e);

}

}

return null;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java远程调试挂起线程_java进程的远程调试

一、jdb调试mqbroker(jvm参数配置)2.利用jdb/idea/eclipse 远程调试,同本地调试一样二、jvisualvm jvm 监视使用jstatd连接nohup $JAVA_HOME/bin/jstatd -p 1099 -J-Djava.security.policy使用jmx连接(需配置jvm启动参数据)由于jvisualvm采器需要使用jmx&#xff0c…

简单图形打印(需求分解)

打印任意高度的实心菱形 菱形的打印是一个相对复杂的需求,我们需要把它分解成为多个简单的需求来完成。 将它看作是两个部分,上面一个三角形,下面一个倒三角形。 再依次实现打印。 代码如下: //打印任意高度的菱形 public class G…

机器人研究员的崛起 |《自然》论文

来源:Nature自然科研根据本周《自然》发表的一篇论文A mobile robotic chemist,汽车装配线上常见的机器人经过改造后,可以在化学实验室内和人类一起工作。该机器人和机器学习算法相连,能够在给定需要检验什么假设的情况下&#xf…

python 求最大值实例_Python 求数组局部最大值的实例

求数组局部最大值给定一个无重复元素的数组A[0…N-1],求找到一个该数组的局部最大值。规定:在数组边界外的值无穷小。即:A[0]>A[-1],A[N-1] >A[N]。显然,遍历一遍可以找到全局最大值&#xff0c…

Python+selenium第一个自动化脚本

第一个自动化脚本(用Python写的) from selenium import webdriver #从selenium导入webdriber driverwebdriber.Firefox() #打开Firefox软件 driver.get("http://baidu.com") #在Firefox的URL里输入百度,打开百度页面 driver.f…

《EE Times》评出2020年全球最值得关注的18家传感器公司

来源:仪商网每年,美国著名电子技术类杂志《EE Times》都会评选出全球值得关注的新创半导体公司排行榜。今年已轮到了第20届,相较以往,最大的变化是这一届的榜单由60家增至100家。在今年的榜单中,保留了上一届中的49家公…

webstorm配置Monokai-Sublime.jar主题

https://github.com/OtaK/jetbrains-monokai-sublime 导入下载的Monokai-Sublime.jar jar包即可使用。 转载于:https://www.cnblogs.com/sirwang/p/7657975.html

用洪小文,人工智能予力永续未来

来源: 微软研究院AI头条 二十一世纪第三个十年的开局时刻有些艰难。当许多人还在为澳大利亚森林大火和席卷东非、西亚的蝗虫灾害而担忧时,一场突如其来的疫情又在全球各国次第爆发,迄今仍未有止息迹象。事实上,被疫情困扰的不仅是…

python 通信模块_python 多进程通信模块

多进程通信方法好多,不一而数。刚才试python封装好嘅多进程通信模块 multiprocessing.connection。简单测试一下,效率还可以,应该系对socket封装,效率可以达到4krps,可以满足好多方面嘅需求啦。附代码如下:client#!/us…

关于h5中背景音乐的自动播放

音乐的自动播放属性&#xff0c;这里也介绍一下&#xff1a; <audio controls"controls" autoplay"autoplay"><source src"song.ogg" type"audio/ogg" /><source src"song.mp3" type"audio/mpeg" …

腾讯发布2020人工智能白皮书:泛在智能

来源&#xff1a;腾讯研究院7月10日&#xff0c;在世界人工智能大会腾讯论坛上&#xff0c;腾讯集团副总裁、腾讯研究院院长司晓正式发布了《腾讯人工智能白皮书&#xff1a;泛在智能》&#xff08;以下简称白皮书&#xff09;。作为腾讯第一份全面介绍AI、阐述腾讯人工智能布局…

相学java_从这两套题,重新认识JS的this、作用域、闭包、对象

日常开发中&#xff0c;我们经常用到this。例如用Jquery绑定事件时&#xff0c;this指向触发事件的DOM元素&#xff1b;编写Vue、React组件时&#xff0c;this指向组件本身。对于新手来说&#xff0c;常会用一种意会的感觉去判断this的指向。以至于当遇到复杂的函数调用时&…

洛谷1373 小a和uim之大逃离

https://www.luogu.org/problem/show?pid1373 题目背景 小a和uim来到雨林中探险。突然一阵北风吹来&#xff0c;一片乌云从北部天边急涌过来&#xff0c;还伴着一道道闪电&#xff0c;一阵阵雷声。刹那间&#xff0c;狂风大作&#xff0c;乌云布满了天空&#xff0c;紧接着豆大…

java 日期处理工具类_Java日期处理工具类DateUtils详解

本文实例为大家分享了Java日期处理工具类DateUtils的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/*** */public…

Ipython知识点总结

初识Python&#xff1a; Python是一种面向对象、直译式计算机程序语言。也是一种功能强大而完善的通用型语言&#xff0c;已经具有十多年的发展历史&#xff0c;成熟且稳定。Python 具有脚本语言中最丰富和强大的类库&#xff0c;足以支持绝大多数日常应用。 Python语法简捷而清…

光刻技术的“鬼斧”之变

来源:脑极体 在我们今天看来&#xff0c;晶体管发明以后&#xff0c;集成电路的出现一直到今天超大规模集成电路的出现&#xff0c;似乎是一件水到渠成的事情。但是如果回到半导体产业初兴的历史现场&#xff0c;我们就会发现没有任何一项关键技术的突破是“必然产生”的。&…

php设置html全局路径_PHPCMS V9 URL去掉或修改/html路径的方法

PHPCMS V9 URL去掉或修改/html路径的方法&#xff0c;在后台找了好长时间没有找到在哪儿可以设置栏目生成的前缀路径/html,不过最终还是找到了。修改配置文件。找到\caches\configs\system.php 找到“html_root”这一项&#xff0c;然后把/html这个字符串删除即可。更新缓存&am…

[PA 2014]Kuglarz

Description 魔术师的桌子上有n个杯子排成一行&#xff0c;编号为1,2,…,n&#xff0c;其中某些杯子底下藏有一个小球&#xff0c;如果你准确地猜出是哪些杯子&#xff0c;你就可以获得奖品。花费c_ij元&#xff0c;魔术师就会告诉你杯子i,i1,…,j底下藏有球的总数的奇偶性。采…

城市大脑从起源到终极状态的7个阶段

0.序言21世纪以来&#xff0c;前沿科技领域出现诸多“大脑”概念&#xff0c;如谷歌大脑&#xff0c;百度大脑&#xff0c;阿里大脑&#xff0c;360安全大脑&#xff0c;腾讯超级大脑等&#xff0c;城市大脑&#xff0c;城市神经网络&#xff0c;工业大脑&#xff0c;航空大脑&…