- /**
- *
- * @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 src1= 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://www.codesnippet.cn/detail/070820135019.html
来源: http://www.codesnippet.cn/detail/070820135019.html