欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java 绘图 综合案例,,/** *

来源: javaer 分享于  点击 6075 次 点评:263

java 绘图 综合案例,,/** *


/**    *     * @param targetImg    * 底图路径    * @param fashion    * 时尚指数    * @param wenyi    * 文艺指数    * @param kengdie    * 坑爹指数    * @param xuepin    * 血拼指数    * @param huanbao    * 环保指数    * @param fenzhi    * 评分,分值    * @param imgUrl    * 右上角图片URl    * @param imgCenter    * 用户图    * @param shuxingImg    * 属性图片URL    * @param newImgUrl    * 新生成的图片保存地址    * @param userName    *   用户名    * @param imgSecond    * 第二层底图     * @throws FWException     */    public void matrix_Images(String targetImg,int fashion,int wenyi,int kengdie,int xuepin,int huanbao,int fenzhi,String imgUrl,Image userImage,String newImgUrl,String shuxingImg,String userName, String imgSecond) throws FWException{    try {        File _file = new File(targetImg);        Image src = ImageIO.read(_file);        int wideth = src.getWidth(null);        int height = src.getHeight(null);        BufferedImage image = new BufferedImage(wideth, height,BufferedImage.TYPE_INT_RGB);        //创建图层,获取绘画对象(画笔)        Graphics g = image.createGraphics();        g.drawImage(src, 0, 0, wideth, height, null);        g.setColor(new Color(237,121,81));        /*        * 根据相应指数,决定线的端点        */        //根据时尚指数确定具体坐标        int s_x=0;        int s_y=0;        if(0<=fashion && fashion<21){        s_x=248;        s_y=253;        }else if(20<fashion && fashion<31){        s_x=257;        s_y=251;        }else if(30<fashion && fashion<41){        s_x=266;        s_y=249;        }else if(40<fashion && fashion<51){        s_x=275;        s_y=246;        }else if(50<fashion && fashion<61){        s_x=284;        s_y=243;        }else if(60<fashion && fashion<71){        s_x=293;        s_y=241;        }else if(70<fashion && fashion<81){        s_x=302;        s_y=238;        }else if(80<fashion && fashion<91){        s_x=311;        s_y=236;        }else if(90<fashion && fashion<1001){        s_x=321;        s_y=232;        }else {        s_x=0;        s_y=0;        }        //根据文艺指数来确定具体坐标        int w_x=0;        int w_y=0;        if(0<=wenyi && wenyi<21){        w_x=172;        w_y=254;        }else if(20<wenyi && wenyi<31){        w_x=161;        w_y=251;        }else if(30<wenyi && wenyi<41){        w_x=152;        w_y=249;        }else if(40<wenyi && wenyi<51){        w_x=143;        w_y=245;        }else if(50<wenyi && wenyi<61){        w_x=134;        w_y=244;        }else if(60<wenyi && wenyi<71){        w_x=125;        w_y=241;        }else if(70<wenyi && wenyi<81){        w_x=116;        w_y=238;        }else if(80<wenyi && wenyi<91){        w_x=107;        w_y=236;        }else if(90<wenyi && wenyi<1001){        w_x=98;        w_y=232;        }else {        w_x=0;        w_y=0;        }        //根据坑爹指数来确定具体坐标        int k_x=0;        int k_y=0;        if(0<=kengdie && kengdie<21){        k_x=209;        k_y=227;        }else if(20<kengdie && kengdie<31){        k_x=209;        k_y=217;        }else if(30<kengdie && kengdie<41){        k_x=209;        k_y=207;        }else if(40<kengdie && kengdie<51){        k_x=209;        k_y=197;        }else if(50<kengdie && kengdie<61){        k_x=209;        k_y=187;        }else if(60<kengdie && kengdie<71){        k_x=209;        k_y=177;        }else if(70<kengdie && kengdie<81){        k_x=209;        k_y=167;        }else if(80<kengdie && kengdie<91){        k_x=209;        k_y=157;        }else if(90<kengdie && kengdie<1001){        k_x=209;        k_y=150;        }else {        k_x=0;        k_y=0;        }        //根据血拼指数来确定具体坐标        int x_x=0;        int x_y=0;        if(0<=xuepin && xuepin<21){        x_x=187;        x_y=298;        }else if(20<xuepin && xuepin<31){        x_x=181;        x_y=307;        }else if(30<xuepin && xuepin<41){        x_x=175;        x_y=316;        }else if(40<xuepin && xuepin<51){        x_x=169;        x_y=325;        }else if(50<xuepin && xuepin<61){        x_x=163;        x_y=334;        }else if(60<xuepin && xuepin<71){        x_x=157;        x_y=343;        }else if(70<xuepin && xuepin<81){        x_x=151;        x_y=352;        }else if(80<xuepin && xuepin<91){        x_x=145;        x_y=361;        }else if(90<xuepin && xuepin<1001){        x_x=139;        x_y=368;        }else {        x_x=0;        x_y=0;        }        //根据环保指数来确定具体坐标        int h_x=0;        int h_y=0;        if(0<=huanbao && huanbao<21){        h_x=232;        h_y=298;        }else if(20<huanbao && huanbao<31){        h_x=238;        h_y=307;        }else if(30<huanbao && huanbao<41){        h_x=244;        h_y=316;        }else if(40<huanbao && huanbao<51){        h_x=250;        h_y=325;        }else if(50<huanbao && huanbao<61){        h_x=256;        h_y=334;        }else if(60<huanbao && huanbao<71){        h_x=262;        h_y=343;        }else if(70<huanbao && huanbao<81){        h_x=268;        h_y=352;        }else if(80<huanbao && huanbao<91){        h_x=275;        h_y=361;        }else if(90<huanbao && huanbao<1001){        h_x=278;        h_y=368;        }else {        h_x=0;        h_y=0;        }        //画中心矩形图        int Poly1_x[]={s_x,k_x,w_x,h_x,x_x};        int Poly1_y[]={s_y,k_y,w_y,h_y,x_y};        int Poly1_pts=Poly1_x.length;        Polygon poly1= new Polygon(Poly1_x,Poly1_y, Poly1_pts);        Polygon poly2= new Polygon();        //设置中心矩形图五个坐标点        poly2.addPoint(k_x, k_y);        poly2.addPoint(w_x, w_y);        poly2.addPoint(x_x, x_y);        poly2.addPoint(h_x, h_y);        poly2.addPoint(s_x, s_y);        g.setColor(new Color(189,196,218));        g.drawPolygon(poly1);        g.fillPolygon(poly2);        //添加第二层底图        File tow_imgurl = new File(imgSecond);        Image two_img = ImageIO.read(tow_imgurl);        g.drawImage(two_img, 0,0, 601, 462, null);        //添加图片矩形图中心图//      File _filebiao = new File(imgUrl);//      Image src_biao = ImageIO.read(_filebiao);//      g.drawImage(src_biao, 200,263, 22, 22, null);        //画线//      g.setColor(new Color(102,103,103));//      g.drawLine(209,155, 212, 265);//      g.setColor(new Color(20,118,178));//      g.drawLine(97,244, 202, 272);//      g.setColor(new Color(234,84,26));//      g.drawLine(140,388, 206, 284);//      g.setColor(new Color(124,190,39));//      g.drawLine(278,388, 217, 284);//      g.setColor(new Color(136,67,150));//      g.drawLine(322,245, 221, 272);        //添加右上角用户图片        //URL you_imgurl = new URL(imgCenter);        //Image src_biao_you = ImageIO.read(you_imgurl);        g.drawImage(userImage, 522,37, 60, 60, null);        //添加属性图片        File shuxing_imgurl = new File(shuxingImg);        Image shuxing_img = ImageIO.read(shuxing_imgurl);        g.drawImage(shuxing_img, 385,295, 100, 50, null);        //写入指数值        String str="【"+fenzhi+"分】";        g.setColor(new Color(0,0,0));        //设置字体        g.setFont(new Font("微软雅黑",Font.BOLD,25));        //设置文字坐标        g.drawString(str, 480, 329);        //写入右上角用户名        g.setColor(new Color(0,0,0));        //设置字体        g.setFont(new Font("微软雅黑",Font.BOLD,15));        //设置文字坐标        userName=substring(userName,6);        g.drawString(userName, 526, 114);        //生成图片        g.dispose();        FileOutputStream out = new FileOutputStream(newImgUrl);        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);        encoder.encode(image);        out.close(); //关闭输出流    } catch (Exception e) {        // TODO: handle exception        e.printStackTrace();        throw new FWException("-255", "error image");    }    }//该片段来自于http://byrx.net
相关栏目:

用户点评