shaokun305的专栏

做J2EE一流架构师 E-Mail:shaokun305@gmail.com

用户操作
[即时聊天] [发私信] [加为好友]
陈少坤ID:shaokun305
139581次访问,排名579好友0人,关注者1
shaokun305的文章
原创 155 篇
翻译 0 篇
转载 23 篇
评论 227 篇
shaokun305的公告
留言板 New
这里是我一个温馨的港湾,记录下我的生活成长和技术成长的经历,随着岁月的流逝,这里将是我的一个最美丽的回忆.
最近评论
wangbin3961:果然有效!
jinxinzhang:应该加catalina.sh里面吧

你可以在页面打印出内存看看,效果
miracle9i:非常详细 谢谢
wadefelix:当被记者问及是不是现在房地产价格太贵,已经让老百姓买不起时,汪光焘解释说,如果现在房子没有销售了,“你这个结论是可以的”,但现在还有人买,所以这个结论“不好说”。(郭少峰)
///
这样的话都敢说,这就是在为房地产商撑腰嘛,恳请总理把他撤了。
guojingDua:炒股票。买基金这篇文章怎么打不开呀。。。
文章分类
收藏
相册
稿笑图库
美女
java相关站点
CSDN
java世界
java研究组织
java解道
与java共舞
中国java
深入struts1.1
朋友的友情连接
http://blog.csdn.net/asklxf/
lxgljj
同事老朱的博客
戈壁草的博客
老康得网站
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 java操作图片.收藏

新一篇: 即时消息机制实现方法 | 旧一篇: 七夕

package com.hhwy.mis.equipment.trigraph.img;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.*;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hhwy.mis.database.DBOperator;
import com.hhwy.mis.equipment.trigraph.dao.ImgDao;
import com.hhwy.mis.equipment.trigraph.img.ganta.DrawImg;
import com.hhwy.mis.equipment.trigraph.img.ganta.ImgData;
import com.hhwy.mis.equipment.trigraph.img.ganta.RoundData;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageDecoder;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class CreateImageServlet extends HttpServlet {

 private static final String CONTENT_TYPE = "image/jpeg;charset=GB2312";

 /**
  * Constructor of the object.
  */
 public CreateImageServlet() {
  super();
 }

 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 /**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType(CONTENT_TYPE);

        String imageFile="/mis/style/temp1/images/aa.jpg";          //被嵌的图片的虚拟路径
//        int x = 0;                      //坐标
//        int y = 0;
     


        ServletOutputStream output=response.getOutputStream();

        if(imageFile.toLowerCase().endsWith(".jpeg")||imageFile.toLowerCase().endsWith(".jpg")) {
            imageFile = getServletContext().getRealPath(imageFile);
//            System.out.println("绝对路径===="+imageFile);
           
            long gtID=(long) 3.77176468794521E16;// //77176468794524E16
            if(request.getParameter("gtID")!=null)
             gtID=Long.parseLong(request.getParameter("gtID"));
//            System.out.println("gtID===="+request.getParameter("gtID"));
           
//            if(request.getParameter("gtID").equals("1"))
//              gtID=(long)  3.77176468794527E16;//3.77176468794479E16
//            if(request.getParameter("gtID").equals("2"))
//             gtID=(long)  3.77176468794522E16;//
//            if(request.getParameter("gtID").equals("3"))
//                gtID=(long)  3.77176468794527E16;//
           
            //
            DBOperator dbo = new DBOperator();
            ImgDao imgDao=new ImgDao();
            ImgData imgData=imgDao.getImgData(dbo,gtID);
           
           
            InputStream imageIn =imgData.getInputStream(); //new FileInputStream(new File(imageFile));
           
            if (imageIn != null) {
             try {
    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
    BufferedImage image = decoder.decodeAsBufferedImage();
    Graphics g = image.getGraphics();
    initFont(g); // 初始化字体
    System.out.println("font====" + g.getFont());

    // List list=testInitData();
    List list = imgDao.getRoundList(imgData);
    new DrawImg().drawRounds(g, list);

    // //////////////////////////
    // 输出数据流
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
    encoder.encode(image);
    imageIn.close();
             } catch (Exception e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
    }
   }
   dbo.freeCon();
   
        }
        output.close();
    }


 private void initFont(Graphics g) {
  String fontColor = ""; // 字体颜色
  int fontSize = 14; // 字体大小
  String fontStyle = "bold"; // 字体风格(斜体,粗体等)
  String fontName = "宋体"; // 字体名称
  g.setColor(Color.BLUE);
  Font mFont = new Font(fontName, Font.PLAIN, fontSize);// 默认字体
  if (fontStyle.equalsIgnoreCase("italic"))
   mFont = new Font(fontName, Font.ITALIC, fontSize);
  if (fontStyle.equalsIgnoreCase("bold"))
   mFont = new Font(fontName, Font.BOLD, fontSize);
  if (fontStyle.equalsIgnoreCase("plain"))
   mFont = new Font(fontName, Font.PLAIN, fontSize);
  // System.out.println("字体大小:=" + mFont.getSize());
  g.setFont(mFont);
 }
 
 
 private List  testInitData() {
  List list=new ArrayList();
  list.add(new RoundData(20,40,8));
  list.add(new RoundData(50,80,8));
  list.add(new RoundData(45,30,8));
  list.add(new RoundData(50,60,8));
//  list.add(new RoundData(20,15,8));
  return list;
 }
 


 /**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to
  * post.
  *
  * @param request
  *            the request send by the client to the server
  * @param response
  *            the response send by the server to the client
  * @throws ServletException
  *             if an error occurred
  * @throws IOException
  *             if an error occurred
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  doGet(request,response);
 }

 /**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occure
  */
 public void init() throws ServletException {
  // Put your code here
 }

}
 /**
 * Copyright(c)2006 Beijing ieforever Co. Ltd.
 * All right reserved.
 * 项目名称:北京电力配网MIS系统
 * 创建日期:2006-5-16
 */

package com.hhwy.mis.equipment.trigraph.img.ganta;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.*;
/**
 * 创建日期:2006-5-16
 * Title:文件所属模块(台帐、查询统计、权限、运行管理、报表)
 * Description:对本文件的详细描述,原则上不能少于50字
 * @author shaokun305
 * @mender:(文件的修改者,文件创建者之外的人)
 * @version 1.0
 * Remark:认为有必要的其他信息
 */

public class DrawImg {
 
 /**
  * 字母标注集合。
  */
 public static final String[] LETTER= {"A","B","C","D","E","F","G","H","I","J","K","L"};
 
 /**
  *
  * 功能:根据索引获得随机规定的颜色Color。
  * 作者: shaokun305
  * 创建日期:2006-5-16
  * @param index
  * @return
  */
 public static Color getColor(int index) {
  switch (index) {
  case 0:
   return Color.YELLOW;
  case 1:
   return Color.GREEN;
  case 2:
   return Color.RED;
  case 3:
   return Color.BLACK;
  default:
   return Color.BLACK;

  }
 }
 
 

 /**
  * 功能: 作者: shaokun305 创建日期:2006-5-16
  *
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根

 }
 
 
 
 /**
  * 画一组图形元素和字母标注
  * 功能:
  * 作者: shaokun305
  * 创建日期:2006-5-16
  * @param g
  * @param rooundlist
  */
 public void drawRounds(Graphics g,List rooundlist) {
  Color color=g.getColor();
  Font font=g.getFont();
  
  if(rooundlist!=null) {
   for (int i = 0; i < rooundlist.size(); i++) {
    RoundData roundData = (RoundData) rooundlist.get(i);
    drawRound(g,roundData,i);
   }
  }
  //还原初始化的数据。
  g.setColor(color);
  g.setFont(font);
 }
 
 /**
  *
  * 功能: 画一个图形和对应的字母标注
  * 作者: shaokun305
  * 创建日期:2006-5-16
  * @param g
  * @param roundData
  * @param color
  */
 private void drawRound(Graphics g,RoundData rd,int index) {
  g.setColor(getColor(index));
  g.drawArc(rd.getPointX(),rd.getPointY(),rd.getRadii(),rd.getRadii(),0,360);
  g.fillArc(rd.getPointX(),rd.getPointY(),rd.getRadii(),rd.getRadii(),0,360);
  
  g.setColor(Color.BLACK);
  g.drawString(rd.getLetter(),rd.getPointX()-10,rd.getPointY()+10);
  
 }
 

}

发表于 @ 2006年09月25日 13:34:00|评论(loading...)|编辑

新一篇: 即时消息机制实现方法 | 旧一篇: 七夕

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © shaokun305