精华内容
下载资源
问答
  • java动态图片处理技术

    千次阅读 2010-09-01 17:41:00
    下面我对使用Java技术实现图片处理的整个环节做主要说明: <br /> 1、图片的装载。我们要处理图片首先要装载图片到Java内存空间的图片对象,Java用很多类来支持图片的装载,比如  a、根据图片文

    使用Java动态处理图片非常方便,可以用于很多应用场合,比如动态输入股市线,缩略图,动态banner图片、动态的界面风格等等。笔者也在软件开发过程中使用了这些技术,使得软件的界面色彩风格可以用户自定义任何一种色彩,大大增强了软件界面的个性化适应能力。下面我对使用Java技术实现图片处理的整个环节做主要说明:


    1、图片的装载。我们要处理图片首先要装载图片到Java内存空间的图片对象,Java用很多类来支持图片的装载,比如
             a、根据图片文件字节数组装载图片:
     public  Image  loadImage(byte[]  data){
       Image  t=Toolkit.getDefaultToolkit().createImage(data);
       trackImage(t,"装载字节数组图片");
       return  t;
     }
             b、根据URL来装载图片:
     public  Image  loadImage(String  urlpath){
       Image  t=null;
       if(a  instanceof  Applet){
         try{
           URL  u=getResourceURL(urlpath);
           t=getApplet().getImage(u);
           trackImage(t,urlpath);//检测图片装载过程
         }catch(Exception  e){
           notifyListener(MediaLoadEvent.MEDIA_LOAD_FAILED,false,e.getMessage());//装载失败
         }
       }else{
         t=Toolkit.getDefaultToolkit().getImage(urlpath);
         trackImage(t,urlpath);//检测图片装载过程
       }
       return  t;
     }
     public  Image  loadImage(String  urlpath,boolean  isurl){
       Image  t=null;
       if(isurl){
         try{
           URL  u=getResourceURL(urlpath);
           t=Toolkit.getDefaultToolkit().getImage(u);
           trackImage(t,urlpath);
         }catch(Exception  e){
           notifyListener(MediaLoadEvent.MEDIA_LOAD_FAILED,false,e.getMessage());//装载失败
         }      
       }else{
         t=Toolkit.getDefaultToolkit().getImage(urlpath);
         trackImage(t,urlpath);//检测图片装载过程
       }
       return  t;
     }
    2、图片装载完成后,我们可以对图片进行处理,改变色度、亮度、对比度,翻转、镜像等等处理操作。在这里我只详细讲一下最底层的象素变换调整技术,其他很多方法大都是根据这个来封装的。
     a、根据制定颜色值和一定范围色差讲图片做透明处理:
     public  Image  transpanent(Image  repImage,Color  oldColor,int  errorRange){
       int  w=repImage.getWidth(a);
       int  h=repImage.getHeight(a);
       int[]  imgdata=parImage(repImage,w,h);
       int  rr,gg,bb;
       rr=oldColor.getRed();
       gg=oldColor.getGreen();
       bb=oldColor.getBlue();
       int  offr,offg,offb;
       for(int  i=0;i<h;i++){//逐行扫描
         for(int  j=0;j<w;j++){//逐列扫描
           int  which=i*w+j;
           int  r=((imgdata[which]&0xff0000>>>16));
           int  g=((imgdata[which]&0xff00>>>8));
           int  b=(imgdata[which]&0xff);
           offr=Math.abs(r-rr);
           offg=Math.abs(g-gg);
           offb=Math.abs(b-bb);
           if(offr+offg+offb<errorRange)imgdata[i*w+j]=16777215;
         }
       }
       Image  t=Toolkit.getDefaultToolkit().createImage(new  MemoryImageSource(w,h,imgdata,0,w));
       trackImage(t,"装载透明处理图片");
       return  t;
     }
     b、对图片做剪切处理,这里使用了图片处理过滤类CropImageFilter,类似的过滤器很多,分别实现不同要求的图片处理变换。
     public  Image  crop(int  x,int  y,int  w,int  h  ,Image  img){
       ImageFilter  filter=new  CropImageFilter(x,y,w,h);
       ImageProducer  producer=new  FilteredImageSource(img.getSource(),filter);
       Image  t=a.createImage(producer);
       trackImage(t,"装载剪切图片");
       return  t;
     }
    3、图片复合和绘制图片:
     使用Java的绘图类,可对多个图片进行叠加,并可以自定义绘制各种图形图象,比如实现图片水印、验证码图片,叠加banner图片等。





                   public  static  void  createImagePNG(String  signcode,OutputStream  out){
       BufferedImage  offimg=null;
       Graphics  offgra=null;
       while(offimg==null||offgra==null){
         if(offimg==null)offimg=new  BufferedImage(50,18,BufferedImage.TYPE_INT_RGB);
         if(offgra==null&&offimg!=null)offgra=offimg.getGraphics();
       }
       offgra.setColor(new  Color(235,235,235));
       offgra.fillRect(0,0,50,18);
       /*for(int  i=0;i<12;i++){//生成混淆背景,也可用混淆背景图片
         offgra.setColor(Color.decode("#"+color[SystemTool.getRandom(0,color.length-1)]));
         offgra.fillOval(SystemTool.getRandom(0,48),SystemTool.getRandom(0,18),1,1);//10,4);
       }*/
       offgra.setColor(Color.red);
       //offgra.setColor(Color.decode("#"+color[SystemTool.getRandom(0,color.length-1)]));
       try{
         Font  font  =  Font.createFont(Font.TRUETYPE_FONT,com.sunstudio.util.ClassLoaderEx.getResourceInputStream(SystemConfig.getParameter("validate_font")));//  FileInputStream("c:comicbd.ttf"));
         offgra.setFont(font.deriveFont(Font.BOLD,18F));
       }catch(Exception  e){}
       offgra.drawString(signcode,1,14);
       PngEncoder  png=new  PngEncoder(Toolkit.getDefaultToolkit().createImage(offimg.getSource()),PngEncoder.ENCODE_ALPHA,PngEncoder.FILTER_LAST,3);
       try{out.write(png.pngEncode());}catch(Exception  e){}
       offgra.dispose();
     }





    4。图片的编码输出:
               Java的图片对象是用于图片装载和处理的数据统一对象,当需要输出到输出设备时需要以指定图片文件格式来编码保存,常见的图片编码器有jpg、bmp、gif89、gif87、png等等。笔者收集了很多图片格式编码器,如有需要可以和我联系,linlichao@163.com。
               对于输出哪种格式的图片只是编码器不同,过程完全相同,编码器就是按照不同的文件格式的要求对图片对象进行编码输出,这些都是国际标准,我们只需要调用就好了。
     PngEncoder  png=new  PngEncoder(Toolkit.getDefaultToolkit().createImage(offimg.getSource()),PngEncoder.ENCODE_ALPHA,PngEncoder.FILTER_LAST,3);
     try{out.write(png.pngEncode());}catch(Exception  e){}

    展开全文
  • 晚霞图片动态网页模板
  • 图片信息动态网页模板
  • 图片BLOG信息动态网页模板
  • 处理图片的一种程序,基于动态跟踪,处理动态图片
  • 这是一张蓝色星光动态PPT背景图片,第一PPT模板网提供幻灯片背景图片免费下载; 关键词:蓝色幻灯片背景图片,星光PowerPoint背景图片动态PPT背景图片,唯美幻灯片背景图片,.PPTX格式;
  • 清明节动态ppt图片模板适用于清明节主题设计应用。
  • 这是一张动态红色彩带PPT背景图片,第一PPT模板网提供精美节日幻灯片背景图片免费下载; 关键词:动态幻灯片背景图片,红色彩带PowerPoint背景图片,.PPTX格式;
  • 这是一张动态炫彩城市剪影PPT背景图片,第一PPT模板网提供各类抽象幻灯片背景图片免费下载; 关键词:动态PPT背景图片,红色幻灯片背景图片,抽象PowerPoint背景图片,.PPTX格式;
  • 这是一份带有动态效果的商务幻灯片背景图片。适合用于制作商务演示PPT封面; 蓝天白云,天空,地球,商务人士幻灯片背景图片动态,PPT封面,商务PPT背景下载,.PPTX格式; 这是一份带有动态效果的商务幻灯片背景...
  • 这是一套蓝色动态光斑背景PPT背景图片,第一PPT模板网提供幻灯片背景图片免费下载; PPT背景图片动态PPT背景图片,渐渐滑落的蓝色流动光斑,像蓝宝石一样晶莹;PPT背景图片适合制作商务科技领域PowerPoint; ...
  • 产品图片动态炫酷展示,产品图片相册,动态相册ppt模板
  • 这是一张蓝色动态光斑背景谢谢PPT背景图片,第一PPT模板网提供幻灯片背景图片免费下载; PPT背景图片动态PPT背景图片,用蓝色作为主题色,渐渐向地面滑落的六边形,给人一种科技感,本PPT背景图片适合制作科技商务...
  • 伸展效果ppt特效,挥鞭式进退文本填充多图片,文本填充多图片投掷进入闪现 路径退出,文本填充多图片挥鞭进入波浪 螺旋飞出,文本填充多图片淡出式回旋进入飞旋退出,单图片翻转特效,文本填充t单图片投掷进入图片...
  • 这是一张动态古典中国风PPT背景图片,第一PPT模板网提供古典幻灯片背景图片免费下载; 关键词:动态古典PPT背景图片,水墨中国风幻灯片背景图片,.PPTX格式;
  • 点击不同菜单,显示不同内容,点击图片超酷切换PPT效果模板
  • 这是一套灰色动态欧美建筑图片背景的,通用商务PPT模板,共27张。第一PPT模板网提供精美商务幻灯片模板免费下载; 关键词:商业建筑、写字楼、高楼大厦幻灯片背景图片,精致建筑PPT模板,蓝灰色橙色搭配的扁平化幻灯...
  • 这是一份精美的摇滚乐队演唱会PPT背景图片,... 本PPT模板具有动态效果,包括动态灯光,乐队演奏PPT动画等。适合用于制作演唱会PPT封面。对于幻灯片动画初学者来说也是一份很好的学习案例; 关键词:演唱会,动态,蓝色
  • 这是两张动态水墨中国风PPT背景图片,第一PPT模板网提供精美幻灯片背景图片免费下载; 关键词:水墨PPT背景图片,山水幻灯片背景图片,黑白PowerPoint背景图片,.PPTX格式;
  • 木纹背景,相片创意排版,相册ppt,多彩动态相册ppt模板
  • 这是四张蓝色清新动态复古花卉PPT背景图片,第一PPT模板网提供精美花卉幻灯片背景图片免费下载; 关键词:蓝色花卉PPT背景图片,花朵、小花PPT背景图片,复古风格PowerPoint背景图片,.PPTX格式;
  • 这是三张带有动态效果的,唯美水彩花卉PPT背景图片。背景元素包括:蝴蝶、花朵、树枝等。.PPTX格式;
  • 这是一组设计简洁的动态拉链PowerPoint背景图片,非常精美好看; 关键词:精美,精致,好看的,优秀,动态幻灯片背景图片,拉链,拉锁,简洁,简约,静物PPT背景图片,宽屏,.PPTX格式; 这是一组设计简洁的动态拉链...
  • 这是一张动态彩色圆点装饰的,谢谢观看PPT背景图片。第一PPT模板网提供精美幻灯片背景图片免费下载; 关键词:彩色圆点幻灯片背景图片动态泡泡PowerPoint背景图片,谢谢PPT背景图片,.PPTX格式;
  • 飞入 路径 退出(快进慢行快退),路径组合(快进慢行),快速缩放进入,节奏紧凑,路径退出,飞入 路径排列展示,路径进入,路径前进 缩放进入 消失,几种路径图片动态效果展示ppt模板
  • 这是5张天空中的动态热气球PPT背景图片,第一PPT模板网提供精美自然风光幻灯片背景图片免费下载; 关键词:蓝天白云PPT背景图片,草地PowerPoint背景图片动态热气球幻灯片背景图片,.PPTX格式;
  • 这是三张精美中国风动态卷轴PPT背景图片,古典棕色卷轴搭配中国风花枝背景。.PPTX格式;
  • 多彩动态创意图片排版相册ppt模板.ppt
  • 精美flash动态网页模板,含html代码效果图片及.swf文件,只需修改图片即可使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 322,893
精华内容 129,157
关键字:

动态图片模板