- 浏览: 331632 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (299)
- 私人 (3)
- linux (22)
- web service (1)
- java applet (1)
- java (41)
- c# (1)
- socket (1)
- android (10)
- htc (1)
- root (1)
- ftp (3)
- 系统备份 (0)
- jquery (3)
- 图表 (1)
- 实用 (4)
- web (9)
- css (3)
- java applet mplayer (1)
- mplayer (4)
- javascript (8)
- eclipse (1)
- 正则表达式 (1)
- jmf (1)
- tomcat (6)
- 驱动 (1)
- 嵌入式 (1)
- usb (3)
- ffmpeg (1)
- player (1)
- encode (1)
- ajax (1)
- 单纯形复法 (1)
- rom (1)
- ndk (1)
- 打印 (1)
- vs2010 (2)
- myeclipse注册机 (1)
- c++ (5)
- capture (0)
- 串口 (1)
- windows (2)
- mingw (1)
- 网卡 (1)
- 绿色版 (1)
- cywin (1)
- x264 (1)
- 恢复文件 (1)
- servlet init 连数据库 (1)
- 51 单片机 (1)
- 操作系统 (1)
- vlc (3)
- 网线 (1)
- CListBox (1)
- mfc (1)
- setTimer (1)
- 分屏 (1)
- 供求信息 (1)
- 导航 (1)
- 批处理 (1)
- dos (1)
- mysql (5)
- MySQL新建用户 (1)
- demo (1)
- vc (1)
- webservice (1)
- 书签 (1)
- 浏览器 (1)
- spring mvc (1)
- excel (1)
- VPN (0)
- sql (1)
- pdf (3)
- arp (1)
- jsp (2)
- IE (1)
- html (1)
- test (3)
- httpclient (1)
- spring mvc 上传 (1)
- easyui (1)
- mybatis (1)
- spring (1)
- 微信 (1)
- weixin (2)
- pay (2)
- maven (2)
- fastdfs (2)
- ELK (2)
- logstash (1)
- rocketMQ (0)
- jmeter (0)
- 测试 (0)
- softether (0)
- util (0)
最新评论
-
ice24:
ftp client applet -
wuzijingaip:
499700647 写道你好,看了您的文章《ftp clien ...
ftp client applet -
zxcv193188:
感谢楼主
java JMF的使用 -
499700647:
你好,看了您的文章《ftp client aplet》很受启发 ...
ftp client applet -
JoeBaby_:
非常感谢,看文档的时候觉得JMF好难的样子,但是看过代码后思路 ...
java JMF的使用
imageBean:
java servlet:
web.xml:
页面:
最后效果:
这是从个人项目中剪下来的,(代码也是,不同需求可以更简单)
package com.c.elmer.util.image; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; public class ImageBean { int width = 100; int height = 100; int imagewidth = 100; int imageheight = 100; Color defaultBG = new Color(217,233,243); BufferedImage image = null; Graphics2D g = null; public BufferedImage getImage() { g.dispose(); image.flush(); return image; } public ImageBean(int width,int height){ this.width = width ; this.height = height; image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); g = image.createGraphics(); g.setBackground(defaultBG); g.setColor(new Color(140,201,253)); } public ImageBean(int width,int height,int imgwidth,int imgheight){ this.width = width ; this.height = height; this.imagewidth = imgwidth; this.imageheight = imgheight; this.height = imgheight*width/imgwidth; image = new BufferedImage(this.width, this.height, BufferedImage.TYPE_INT_RGB); g = image.createGraphics(); g.clipRect(0, 0, this.width, this.height); g.setBackground(defaultBG); g.setColor(new Color(242,242,242)); g.fillRect( 0,0,this.width,this.height); g.setColor(new Color(210,224,242)); g.drawRect(1, 1, this.width - 2, this.height - 2); // System.out.println(g.getBackground().toString()); } /** * <p>取比</p> * @param a * @return */ public int percentXY(int x,int width,int imgwidth){ return (imgwidth*x) / width; } public ImageBean setBgColor(Color c){ g.setBackground(c); return this; } public ImageBean set3dRect(boolean is3d){ if(is3d){ g.draw3DRect(0, 0, width - 1, height - 1, true); } return this; } public ImageBean setText(String text,String style){ g.setColor(Color.red); if(style.equals("top")){ g.drawString(text, 0, 12); } if(style.equals("center")){ g.drawString(text, this.width - this.width/2-30, this.height/2); } if(style.equals("bottom")){ g.drawString(text, this.width - this.width/2-30, this.height-20); } return this; } public ImageBean addRect(int x,int y,int width,int height,Color c,String text){ x = percentXY(x,this.imagewidth,this.width); y = percentXY(y,this.imageheight,this.height); int w = percentXY(width,this.imagewidth,this.width); int h = percentXY(height,this.imageheight,this.height); g.setColor(new Color(14,159,241)); g.setBackground(defaultBG); g.drawRect( x , y , w, h); g.drawString(text, x + 2, y + 10); return this; } public ImageBean fillRect(int x,int y,int width,int height,Color c,String text){ x = percentXY(x,this.imagewidth,this.width); y = percentXY(y,this.imageheight,this.height); int w = percentXY(width,this.imagewidth,this.width); int h = percentXY(height,this.imageheight,this.height); g.setColor(c); g.setBackground(defaultBG); g.fillRect( x , y , w, h); g.drawString(text, x + 2, y + 20); return this; } public int getImageheight() { return imageheight; } public void setImageheight(int imageheight) { this.imageheight = imageheight; } public int getImagewidth() { return imagewidth; } public void setImagewidth(int imagewidth) { this.imagewidth = imagewidth; } }
java servlet:
package com.ibox.util; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.List; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.c.elmer.util.image.ImageBean; import com.provideo.ibox.model.dao.ModelDAO; import com.provideo.ibox.model.forms.ModelLocationsBean; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class CreateImage extends HttpServlet { public CreateImage() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } Color getRandColor(int fc, int bc) {// 给定范围获得随机颜色 Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } public BufferedImage getImage(){ int width = 100; int height = 100; BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); g.setBackground(Color.BLUE); g.clearRect(0, 0, width, height); g.setColor(Color.RED); g.dispose(); bi.flush(); return bi; } private void createImage(OutputStream out) { int width = 100; int height = 100; int allwidth = 1024; int allheight = 888; BufferedImage bi = new ImageBean(width,height,allwidth,allheight) .setBgColor(new Color(217,233,243)) .set3dRect(true) .addRect(22, 222,288,234 , Color.red, "") .addRect(400, 200,300,500, Color.green, "") .addRect(2, 500,400,444 , Color.BLUE, "") .getImage(); /* BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); // set background: g.setBackground(new Color(217,233,243)); g.setColor(new Color(140,201,253)); g.clearRect(0, 0, width, height); g.drawRect(0, 0, 44, 33); g.drawArc(32, 45, 78, 54, 45, 222); // g.drawOval(12, 12, 45, 45); // g.drawRoundRect(21, 5, 48, 55, 55, 55); g.setColor(new Color(242,242,242)); g.drawString("Power Ibox", 12, 93); g.draw3DRect(0, 0, width - 1, height - 1, true); // set fore color: g.setColor(Color.RED); // start draw: g.drawLine(0, 66, 100, 66); g.drawLine(66, 0, 66, 66); // end draw: g.dispose(); bi.flush(); // encode: */ JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi); param.setQuality(1.0f, false); encoder.setJPEGEncodeParam(param); try { encoder.encode(bi); } catch (IOException ioe) { ioe.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ModelDAO dao = new ModelDAO(); int tid = 246 ; if(request.getParameter("tid") != null){ tid = Integer.parseInt(request.getParameter("tid")); } int width = 100; if(request.getParameter("width") != null){ width = Integer.parseInt(request.getParameter("width")); } String model = "default"; if(request.getParameter("model") != null){ model = request.getParameter("model"); } String tname = ""; List list = dao.getModelLocationById(tid); int height = 100; int allwidth = 1024; int allheight = 888; BufferedImage bi = null; ImageBean imgbean = null; for(int i=0;i<list.size();i++){ ModelLocationsBean bean = (ModelLocationsBean) list.get(i); String wh = bean.getWh(); int w = Integer.parseInt( wh.split("x")[0]); int h = Integer.parseInt( wh.split("x")[1]); imgbean = new ImageBean(width,height,w,h); tname = bean.getTname(); break; } for(int i=0;i<list.size();i++){ ModelLocationsBean bean = (ModelLocationsBean)list.get(i); String location = bean.getLocation(); String[] ls = location.split("x"); int w = Integer.parseInt(ls[0]); String l = ls[1]; l = l.replace("-", "+-").replace("+", " "); String[] htl = l.split(" "); int h = Integer.parseInt( htl[0]); int top = Integer.parseInt( htl[1]); int left = Integer.parseInt( htl[2]); String type = bean.getType(); String text = ""; Color c = new Color(217,233,243); if(type.equals("1")){ c = new Color(147,165,180); text = "video"; } else if(type.equals("2")){ c = new Color(248,165,180); text = "pic"; } else if(type.equals("3")){ c = new Color(176,165,122); text = "flash"; } else if(type.equals("4")){ c = new Color(219,222,223); text = "text"; } else if(type.equals("5")){ c = new Color(219,237,225); text = "url"; } else if(type.equals("6")){ c = new Color(147,165,180); text = "live"; } else if(type.equals("7")){ c = new Color(248,165,122); text = "ppt"; } if(model.equals("default")){ c = Color.red; imgbean.setText(tname, "top"); imgbean.addRect(top, left, w, h, c, ""); } if(model.equals("text")){ c = Color.red; imgbean.addRect(top, left, w, h, c, text); } if(model.equals("name")){ c = Color.red; imgbean.setText(tname, "top"); imgbean.addRect(top, left, w, h, c, text); } if(model.equals("empty")){ imgbean.addRect(top, left, w, h, c, ""); } if(model.equals("fill")){ imgbean.setText(tname, "top"); imgbean.fillRect(top, left, w, h, c, ""); } } bi = imgbean.getImage(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream()); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi); param.setQuality(1.0f, false); encoder.setJPEGEncodeParam(param); try { encoder.encode(bi); } catch (IOException ioe) { ioe.printStackTrace(); } // response.setContentType("image/jpeg"); // createImage(response.getOutputStream()); /* //阻止生成的页面内容被缓存,保证每次重新生成验证码 response.setContentType("image/jpeg"); BufferedImage image = getImage(); ImageIO.write(image,"JPEG",response.getOutputStream()); */ } public void init() throws ServletException { // Put your code here } }
web.xml:
<servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>CreateImage</servlet-name> <servlet-class>com.ibox.util.CreateImage</servlet-class> </servlet>
页面:
<img id="iboxitem<%=i %>" width="70" src="${pageContext.request.contextPath }/servlet/CreateImage?tid=<%=bean.getOid() %>&model=text" name="tempimgs" style="-moz-opacity:0.5; filter:alpha(opacity=50);cursor:hand;" onmouseover="imgMouseOver(this)" onmouseout="imgMoused(this);" onclick="tempImgClicked(<%=bean.getOid() %>,this,'<%=bean.getTname() %>')" />
最后效果:
这是从个人项目中剪下来的,(代码也是,不同需求可以更简单)
发表评论
-
java 线程池
2018-08-07 11:26 328package com.fx.test; impor ... -
ftppool-demo
2018-05-24 09:16 323ftp pool demo -
java 遍历文件夹和文件
2018-03-28 11:39 473public static void trave ... -
java 流写入本地文件
2018-03-27 10:17 819private static void wr ... -
java 字符串转为流
2018-03-27 10:03 487public static Inpu ... -
ftputil + ftpclientPOOL
2018-03-22 14:39 392ftputil + ftpclientPOOL -
微信支付网上找的Demo
2017-06-22 17:58 316微信支付网上找的Demo,当时做支付时有些地方就参考了他,作者 ... -
Jsoup get post
2016-12-21 17:11 384package com.test; import ... -
java 面包屑导航
2016-10-24 15:08 482类似面包屑导航,抛砖引玉 后台维护一个访问路径的列表 ... -
获取n年前日期
2016-03-08 14:42 520/** * 获取n年前日期 ... -
httpclient访问需要登录才能访问的数据
2015-04-23 22:10 577package com.grkj.modules.tree ... -
jsp获取uri 以及绝对路径
2014-07-01 17:06 516得到从根路径到当前jsp页面的路径: request.ge ... -
Tomcat服务器-并发压力测试下调优注意点小结
2014-06-18 10:15 3331、Tomcat conf中server.xml有个重 ... -
JAVA导出PDF实例
2014-05-13 14:39 889一、直接导出成PDF Java代码 ... -
Java HTML直接导出PDF
2014-05-13 12:18 1230Java HTML直接导出PDF 对于java中如何从h ... -
java生成PDF
2014-05-13 12:11 480一、前言 在企业 ... -
linux下JAVA环境变量的设置
2014-03-21 14:05 537在终端中输入命令 vi /etc/profile.d/j ... -
Java读取Excel内容
2014-02-20 16:34 545所需jar 下后面 import java.io.B ... -
myeclipse9
2012-08-28 16:13 697import java.io.BufferedReader; ... -
java 打印
2012-08-07 18:03 929import java.awt.BasicStroke; ...
相关推荐
在Java编程语言中,生成图片是一项常见的任务,尤其在数据可视化、报告生成或者网页动态内容制作等场景。这里我们将深入探讨如何使用Java根据配置文件批量生成图片。 首先,要生成图片,我们需要理解Java中的图像...
Java 使用 Servlet 动态生成图片 在 Web 应用中,经常需要动态生成图片,如实时股市行情、各种统计图等等。这种情况下,图片只能在服务器内存中动态生成并发送给用户,然后在浏览器中显示出来。本质上,浏览器向...
在IT行业中,将PDF文档转换为图片是一种常见的需求,特别是在数据可视化、网页预览或移动端显示PDF内容时。Java作为一种广泛使用的编程语言,提供了多种库和工具来实现这个功能。以下是一些关于“Java将PDF生成图片...
在这个例子中,`showchart.htm`可能是一个HTML页面,它通过JavaScript或Ajax请求上述Java方法来获取图表并显示在页面上。`showverifycode.jsp`可能是用于生成验证码的页面,它也可能利用类似的技术来创建图像并返回...
总之,Java生成一维码主要依赖于第三方库,如ZXing。通过这些库,可以方便地将数据编码为一维码图像,然后在各种应用场景中使用,如网页、打印标签等。在实际开发中,还需要考虑到错误处理、一维码格式的选择以及与...
提交表单后,图片会被上传到服务器,并在页面上显示出来。 这个过程中涉及的关键技术点包括Struts2的Action和Result机制、Apache Commons FileUpload的使用、文件的服务器存储、数据库操作以及前端页面的交互。理解...
在Java开发中,图片上传并实时显示是一项常见的需求,特别是在Web应用中。本文将深入探讨如何利用Java技术实现在图片上传后立即在页面上显示。首先,我们需要理解这个过程涉及的关键技术点,包括文件上传、文件处理...
在IT行业中,将HTML页面转换为图片是一种常见的需求,例如用于网页截图或者生成预览图。Java作为一种强大的后端开发语言,提供了多种方法来实现这一功能。本篇将详细讲解如何利用Struts2框架,结合Java的相关技术,...
为了在实际应用中使用这个验证码,还需要将其显示在Web页面上,或者通过网络传输到客户端。这通常涉及到HTTP响应的设置,将图片数据以二进制形式发送。在Web环境中,可以使用Servlet来实现这一功能。 在提供的`...
本教程将详细介绍如何通过URL地址获取网页并生成jpg图片,同时解决32位和64位运行环境下的兼容性问题。我们将主要使用Java语言来实现这一功能,因为它具有丰富的库和跨平台的特性。 首先,我们需要一个能够处理网络...
在 Java 开发中,经常需要将 HTML 转换为 PDF,并希望在生成的 PDF 中正确显示 HTML 中的图片。但是,由于 HTML 和 PDF 的格式差异,可能会遇到图片不显示的问题。为了解决这个问题,本文将介绍使用 iText 和 Flying...
在本例中,验证码图片生成成功,但是却不显示在页面上。问题的原因可能是由于浏览器的缓存机制,导致验证码图片不被刷新。解决方法是设置浏览器不要缓存该图片,使用response.setHeader()方法设置Pragma、Cache-...
Java生成图形主要是指在Web环境中利用编程技术来创建和展示图表,以便于数据可视化。在传统的桌面应用程序中,可以借助操作系统提供的控件来构建用户界面,但在Web环境下,由于客户端的多样性和浏览器的限制,这种...
本文将深入探讨如何使用Java生成二维码并将其在网页上展示。 首先,我们需要理解二维码(Quick Response Code)是一种二维条形码,能够存储比传统条形码更多的信息,如网址、文本、联系信息等。在Java中,我们可以...
本项目"java生成二维码图片到页面"显然是关于如何在Java环境中将二维码图像生成并展示到Web页面上的实践示例。 首先,我们需要了解生成二维码的关键步骤。在Java中,常用的库有ZXing(Zebra Crossing)和qrcode4j,...
Java 后台生成的表格通常用于数据展示,但有时我们需要将这些动态生成的表格转换为图片格式,以便于分享、打印或保存。这就涉及到一个工具——HtmlImageGenerator,也称为Html2Image。这个工具能够将HTML页面转化为...
如果图片是相对路径,需要确保在转换时,图片文件与生成的 PDF 在同一个目录下或者提供绝对路径。另外,对于网络上的图片,需要下载到本地再进行转换,因为 FlyingSaucer 不支持直接从 URL 加载图片。 为了处理这些...
本项目是基于Struts框架,通过Action进行业务处理,在内存中生成图像,并直接显示在JSP页面上,无需保存到硬盘。 首先,我们来理解一下Struts框架。Struts是Apache组织开发的一个开源MVC框架,用于构建结构化的Web...