首页 | CG软件 | CG信息 | CG教程 | 三维作品 | 设计理论 | CG加油站 | 设计鉴赏 | 社区图库 | Flash | 专题 | 顶客 | 论坛 | 博客 | 导航 | 下载 | 高级搜索
RSS
热门: 素材  作品  设计  效果图  创意  3dsmax  优秀作品  Vray  艺术  欣赏

Java 图像技术

来源: 作者:图腾收集 时间:2007-12-05 点击:
技术   图像   Java     笔者在这里将画线,画或填充多边形等理解为"图形"技术,将图片的变换,显示理解为"图像"技术.  相对而言,图形技术较简单,图像技术较复杂.下面笔者从实用的角度出发,讲解几个图像编程问题.首先,我们看下面这个程序.
       
---- HTML 文件如下:
< APPLET CODE="easy.class" WIDTH=300 HEIGHT=300 >< /APPLET >
  程序非常简单. 但你注重到没有,在浏览器的状态栏,显示出的数值并不一定是1: 你要显示的图片幅面越大,这个数值越大.这说明 paint()方法被调用了不止一次.那么,是谁,在什么时候调用的?

  事实上,每当有新的图片数据到达或生成时,Java小程序都会自动去调用paint()方法重绘屏幕.这个工作由ImageObserver接口的imageUpdate()方法实现.你可以超越这个imageUpdate()方法,自己重新编程.考虑到本地的机器从Web服务器上获取图片的速度一般比较慢,很多时候你必须要知道已经有多少图片数据已经被下载.下面给出一个示范程序,程序可以一边下载,一边显示,同时通知用户已经获得多少图片数据.
imageUpdate()参数说明如下:
 img_ob: 被监视的图像.
flags: 被监视图像的状态.
ABORT: 图像生成被异常中断
ALLBITS: 全部图像都已生成
 ERROR: 发生错误
FRAMEBITS: 完成一幅
HEIGHT: 本次生成的高度
SOMEBITS: 已将生成了一部分图像
 WIDTH: 本次生成的宽度
 x: x轴坐标
y: y轴坐标
width: 本次下载的图像的宽度
height: 本次下载的图像的高度

---- 下面用两个例子说明怎样获取大幅图像的局部.第一个例子使用CropImageFilter类去获得图像的局部.你可以这样使用这种技术:
---- 首先根据图像裁剪过滤器产生图像过滤器.
---- 然后根据根据过滤器产生图像生产者. ImageProducer procuder=new
---- 然后根据图像生产者产生新的图像. Image img=createImage(procuder).
---- 下面的程序使用上述技术裁剪图片.程序运行后,你用"拖拽"鼠标的方式(按住鼠标键并移动鼠标)在图片上选定一片区域,然后再在运行区上点击鼠标,刚才你选定的区域的图片将被复制到这个位置.要注重的是,程序并未对选择区域的起始点和终止点的相对位置作出判定,因此,你一定要使终止点在起始点的右下方.
      
---- 很多情况下上面的方法不实用.比如你想对图片作出某种变换,上面的方法就无能为力了.下面的程序给出更强大的算法:将图像数据取到数组中,再在数组中将需要的数据提取出来,依据这些数据再生成新的图像去显示.设想你有一个幅面大于窗口尺寸的图像要显示,你必须要让用户可以控制窗口的位置,通过移动窗口,浏览整个图像.程序运行后,你可以用四个光标键移动窗口浏览全部图像.

---- 程序中的要害技术有三个,第一个是PixelGrabber类用于获取图像数据.你可以这样使用:
---- 首先生成一个PixelGrabber实例:
    
---- 第二个要害技术是使用媒体追踪器MediaTracker监视图像的生成情况.你可以这样使用:
        
---- 第三个要害技术是使用内存数据(数组)产生图像.你可以这样使用:
       
---- 下面的程序对两个图像进行合成并显示来模拟图像的淡入淡出.程序运行后,每按一次向上键,前景图像就增强一点,每按一次向下键,前景图像就减弱一点.
---- 首先你要了解图像数据.
---- 每个象素点的信息由一个整数表达.整数共32个二进制位,从左向右,分成四个部分,每部分都是8位.
---- 第一部分: Alpha 信息.控制图像显示的强度.下面的程序就是通过调整这个数值控制图像的淡入淡出.
---- 第二部分:红色数据.
---- 第三部分:绿色数据.
---- 第四部分:蓝色数据.
---- 程序使用的方法是:先画背景图像,再在上面画带Alpha数据的前景图像,通过调整Alpha值使前景图像淡入淡出.
本文地址:http://www.cg3000.com/html/cgTutorials/VirtualReality/Java3D/20071205/Java_tuxiangjishu_69346.shtml
上一篇:用JAVA对彩色图片进行灰度变换
下一篇:JAVA游戏直棋教程
关键字:迅雷 快车 Baidu Java 图像 技术
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
图腾CG联盟免责声明:本网站转载纯粹出于为网民传递更多信息之目的,无任何商业目的。如本网站转载稿件涉及版权等问题,请作者速来函admincg3000@163.com联系,在此,我们首先向您表示诚挚的歉意,并将尽快予以改正。本网站上发表的内容只代表作者本人之观点,本网站只出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
赞助广告