- 浏览: 320100 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ajax忘了跳转:
谢谢分享,基于你的思路。我改良了一版,可供参考public s ...
一个整数的所有最小因子 -
baobaodehao1991:
楼主,合并多列,单元格内容并不能居中,选中合并的单元格,除了前 ...
把table表格内容导出为excel -
lbaaixy:
楼主,小弟最近也在弄这个东西。有点小问题java.lang.C ...
flex + red5实现视频会议 -
weilikk:
好像只能替换整行,如果是一行中有其他数据,只替换行中某个位置就 ...
poi替换模板标签为图片 -
chinaxiaofeng8:
在吗,兄弟,你那个代码怎么运行看效果的
flex + red5实现视频会议
开发了一个聊天工具,群组头像像仿照微信的头像那样显示成员头像合成图片,百度了一下,发现没有顺手的,就自己动手写了一个,现在分享给大家。
我所有用户图片都是120*120的,合成图片为132*132,九宫格的话用户图片边到合成图片边为3,依次类推,里面的120,132,40,30等大小根据自己的头像大小灵活变动即可
我所有用户图片都是120*120的,合成图片为132*132,九宫格的话用户图片边到合成图片边为3,依次类推,里面的120,132,40,30等大小根据自己的头像大小灵活变动即可
public static String[] getXy(int size){ String[] s = new String[size]; int _x = 0; int _y = 0; if(size ==1){ _x = _y = 6; s[0] = "6,6"; } if(size == 2){ _x =_y = 4; s[0] = "4,"+(132/2-60/2); s[1] = 60+2*_x+","+ (132/2-60/2); } if(size == 3){ _x=_y =4; s[0] = (132/2-60/2)+","+_y; s[1] = _x+","+(60+2*_y); s[2] = (60+2*_y)+","+(60+2*_y); } if(size ==4){ _x=_y =4; s[0] = _x+","+_y; s[1] = (_x*2 + 60)+","+_y; s[2] = _x+","+(60+2*_y); s[3] = (60+2*_y)+","+(60+2*_y); } if(size == 5){ _x = _y = 3; s[0] = (132-40*2-_x)/2+","+(132-40*2-_y)/2; s[1] = ((132-40*2-_x)/2+40+_x)+","+(132-40*2-_y)/2; s[2] = _x+","+((132-40*2-_x)/2+40+_y); s[3] = (_x*2+40)+","+((132-40*2-_x)/2+40+_y); s[4] = (_x*3+40*2)+","+((132-40*2-_x)/2+40+_y); } if(size == 6){ _x = _y = 3; s[0] = _x+","+((132-40*2-_x)/2); s[1] = (_x*2+40)+","+((132-40*2-_x)/2); s[2] = (_x*3+40*2)+","+((132-40*2-_x)/2); s[3] = _x+","+((132-40*2-_x)/2+40+_y); s[4] = (_x*2+40)+","+((132-40*2-_x)/2+40+_y); s[5] = (_x*3+40*2)+","+((132-40*2-_x)/2+40+_y); } if(size == 7){ _x=_y =3; s[0] = (132-40)/2+","+_y; s[1] = _x+","+(_y*2+40); s[2] = (_x*2+40)+","+(_y*2+40); s[3] = (_x*3+40*2)+","+(_y*2+40); s[4] = _x+","+(_y*3+40*2); s[5] = (_x*2+40)+","+(_y*3+40*2); s[6] = (_x*3+40*2)+","+(_y*3+40*2); } if(size == 8){ _x=_y =3; s[0] = (132-80-_x)/2+","+_y; s[1] = ((132-80-_x)/2+_x+40)+","+_y; s[2] = _x+","+(_y*2+40); s[3] = (_x*2+40)+","+(_y*2+40); s[4] = (_x*3+40*2)+","+(_y*2+40); s[5] = _x+","+(_y*3+40*2); s[6] = (_x*2+40)+","+(_y*3+40*2); s[7] = (_x*3+40*2)+","+(_y*3+40*2); } if(size == 9){ _x=_y = 3; s[0]=_x+","+_y; s[1] = _x*2+40+","+_y; s[2] = _x*3+40*2 +","+_y; s[3] = _x+","+(_y*2+40); s[4] = (_x*2+40)+","+(_y*2+40); s[5] = (_x*3+40*2)+","+(_y*2+40); s[6] = _x+","+(_y*3+40*2); s[7] = (_x*2+40)+","+(_y*3+40*2); s[8] = (_x*3+40*2)+","+(_y*3+40*2); } return s; } public static int getWidth(int size){ int width = 0; if(size == 1){ width = 120; } if(size>1 && size<=4){ width = 60; } if(size>=5){ width = 40; } return width; } public static void download(String urlString, String filename,String savePath) throws Exception { // 构造URL URL url = new URL(urlString); // 打开连接 URLConnection con = url.openConnection(); //设置请求超时为5s con.setConnectTimeout(5*1000); // 输入流 InputStream is = con.getInputStream(); // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流 File sf=new File(savePath); if(!sf.exists()){ sf.mkdirs(); } OutputStream os = new FileOutputStream(sf.getPath()+File.separator+filename); // 开始读取 while ((len = is.read(bs)) != -1) { os.write(bs, 0, len); } // 完毕,关闭所有链接 os.close(); is.close(); } public static String zoom(String sourcePath,String targetPath,int width,int height) throws IOException{ File imageFile = new File(sourcePath); if(!imageFile.exists()){ throw new IOException("Not found the images:"+sourcePath); } if(targetPath==null || targetPath.isEmpty()) targetPath = sourcePath; String format = sourcePath.substring(sourcePath.lastIndexOf(".")+1,sourcePath.length()); BufferedImage image = ImageIO.read(imageFile); image = zoom(image,width,height); ImageIO.write(image, format, new File(targetPath)); return targetPath; } private static BufferedImage zoom(BufferedImage sourceImage , int width , int height){ BufferedImage zoomImage = new BufferedImage(width, height, sourceImage.getType()); Image image = sourceImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); Graphics gc = zoomImage.getGraphics(); gc.setColor(Color.WHITE); gc.drawImage( image , 0, 0, null); return zoomImage; } public static void createImage(File[] files,String outPath) throws Exception{ String[] imageSize = getXy(files.length); int width = getWidth(files.length); BufferedImage ImageNew = new BufferedImage(132,132,BufferedImage.TYPE_INT_RGB); //设置背景为白色 for(int m=0;m<132;m++){ for(int n=0;n<132;n++){ ImageNew.setRGB(m, n, 0xFFFFFF); } } for(int i=0;i<imageSize.length;i++){ String size = imageSize[i]; String[] sizeArr = size.split(","); int x = Integer.valueOf(sizeArr[0]); int y = Integer.valueOf(sizeArr[1]); String f = zoom(files[i].getPath(),SystemConfig.getFileFsBase()+File.separator+"group"+File.separator+"temp",width,width); File fileOne = new File(f); BufferedImage ImageOne = ImageIO.read(fileOne); //从图片中读取RGB int[] ImageArrayOne = new int[width*width]; ImageArrayOne = ImageOne.getRGB(0,0,width,width,ImageArrayOne,0,width); ImageNew.setRGB(x,y,width,width,ImageArrayOne,0,width);//设置左半部分的RGB } File outFile = new File(outPath); ImageIO.write(ImageNew, "png", outFile);//写图片 } public static void main(String[] args) throws Exception{ File f = new File("D:\\group"); File[] fArr = f.listFiles(); createImage(fArr,"D:\\group\\g.png"); }
发表评论
-
汉字转拼音
2015-06-18 13:44 1029/* * Copyright (C) 2011 The ... -
android显示圆形图片
2015-06-18 13:42 970package com.*.widget; imp ... -
poi替换模板标签为图片
2013-08-19 14:49 8807在问答频道看到有人求poi模板替换图片的需求,百度一下,网上没 ... -
为hibernate添加数据库方言函数
2013-06-27 19:31 5162在sessionFactory中配置hibernate.dia ... -
jvm内存映像分析
2013-05-23 20:11 6363jdk自带的jmap就是java内存映像工具,可以 ... -
n个数组各取一数的不重复组合
2013-04-27 00:00 2855package collection; import ... -
求最长的递增子数组
2013-04-24 13:58 1308package com.chinahrt.zyn.pang ... -
从m个字符选出n个的所有组合
2013-04-23 15:49 1468import java.util.ArrayList;imp ... -
查找最小的K个数
2013-04-13 12:04 1533package com.chinahrt.zyn.pango ... -
求连续子数组的最大和
2013-04-11 17:27 1418package com.chinahrt.zyn.pang ... -
求N个字符的全排列
2013-04-10 10:55 1680package com.chinahrt.zyn.pango ... -
web.xml的读取顺序
2013-03-30 11:22 4338由于项目中 ... -
spring的bean实例化时间
2013-03-30 10:54 2517前两天在问答频道看到有同学问spring的b ... -
运行应用,Could not open: device
2012-12-30 22:11 2537右键点击我的电脑-属性-高级系统设置-环境变量,在系统变量里边 ... -
Android:Debug certificate expired on DATE 解决方法 (转)
2012-12-30 22:04 1142使用Eclipse调试Android程序,源代码没有错,但总是 ... -
把table表格内容导出为excel
2012-12-21 13:54 6034package com.chinahrt.report.e ... -
Java 编程规则(think in java 第四版)
2012-11-22 13:38 1166(1) 类名首字母应该大写 ... -
jetty嵌入式使用方法
2012-09-17 16:08 12032以jetty-hightide-8.1.6.v20120903 ... -
jmail接收邮件(转)
2012-08-07 10:57 2874package com.chinahrt.zyn; im ... -
java求集合交集和并集
2012-07-17 20:16 3469在问答频道遇到求助集合求交集或者并集的问题,自己翻了下api, ...
相关推荐
实现类似微信的9宫格 ,从相册选9张或直接拍照 ,获得后,对图片做bitmap的转换处理,处理完成后,逐一向服务器上传,成功后,保存服务器返回的路径
仿微信群头像九宫格控件 一、简介: 参照Android 仿微信群聊头像文章学习开发的一个仿微信群头像九宫格控件
仿支付宫格导航布局。需要5积分拿走不送
仿微信朋友圈9宫格图片选择器可删除仿微信朋友圈9宫格图片选择器可删除仿微信朋友圈9宫格图片选择器可删除
Android 仿微信朋友圈9宫格图片展示&多选图片 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]
博文源码 博文链接:http://blog.csdn.net/airsaid/article/details/51026447
Android仿微信、支付宝钱包宫格界面Demo
微信群聊生成九宫格形式的头像 [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。]
在网上找了些仿微信群聊头像的开源库后,发现没特别好用的,或者说满足我需求的,就只好在别人的基础上改了下,也就有了这样的自定义控件了,以此来实现微信群聊头像的效果,效果图如下所示: 主要实现: 一、...
WeiXinFriendCircle 一个模仿微信朋友圈上传图片后展示的九宫格效果
基于QT实现的9宫格数字,字母输入法。支持密码类型输入,输入之后显示.代替输入内容
9宫格展示,仿微信朋友圈展示9宫格图片,是展示不是选取,项目中拖出来的,可放心用到项目中去。
这是 android手机 9宫格解锁软件 任何一款手机都可以装 经测试 100%可信
iphone 9个图片,点击之后跳转到相应View ,实现9宫格。
在Starling中对载入的纹理进行9宫格缩放。
9宫格 12宫格 二维散点图python 科研绘图
9宫格FLASH导航 9宫格FLASH导航 9宫格FLASH导航
9宫格抽奖源码,是我花10块钱买来的 哈哈哈,测试过了,非常好用
Android9宫格