Java在图片处理领域的功能是非常强大的,不过现在用的最多的好像是Web方面,什么Sping,Struts之类的,我个人也在用这些,也不排斥这些,只是在这个工程中经常和图片打交道,如果就写了好多的图片处理算法(工具),这里和大家分享下。
Java将图片变亮的原理也很简单,拿到图片的RGB值,然后在这个基础上 +X(0<=x<=255),如果处理后像素的值为255,那么这个像素点就是白色的,同样如果像素点的值为0这个点就是黑色的,明白这个道理看下面的代码就很简单了。
public final BufferedImage getPicture(BufferedImage originalPic) {
int imageWidth = originalPic.getWidth();
int imageHeight = originalPic.getHeight();
BufferedImage newPic = new BufferedImage(imageWidth, imageHeight,
BufferedImage.TYPE_3BYTE_BGR);
short[] brighten = new short[256];
short pixelValue;
for (int i = 0; i < 256; i++) {
pixelValue = (short) (i + brighter);
if (pixelValue > 255) {
pixelValue = 255;
}
brighten[i] = pixelValue;
}
LookupTable lut = new ShortLookupTable(0, brighten);
LookupOp lop = new LookupOp(lut, null);
lop.filter(originalPic, newPic);
return newPic;
}
代码讲解:
首先我们先拿个一个图片的内存对象originalPic(图片怎样加载到内存,请参考我的文章《Java加载图片 利用Image与BufferedImage》地址:
http://javapub.iteye.com/blog/683944和文章《Swing显示图片》地址:
http://javapub.iteye.com/blog/682257。
利用originalPic建立一个新的内存对象存储新的图片;然后将原始图片的每个像素点就加上一个增量,如果加增量后值大于255就按255。然后LookupTable 这个类根据原始图片生成新的图片并返回。 返回后的显示大家看上面的参考链接或者看附带的例子。
原始图片:
变量后的图片:
ZPhotoer的main函数在PhotoFrame类里,运行后输入值图片会变亮(变暗),并可以保存改变后的图片。
文章地址:
http://javapub.iteye.com/blog/684532
相关文章
Java图像图片 边缘检测 http://javapub.iteye.com/blog/685468
Java图像变灰 http://javapub.iteye.com/blog/687082
Java 给图片增加 水印图片 水印文字 [url]Java 给图片增加 水印图片 水印文字[/url]
Java图像渐变 http://javapub.iteye.com/blog/736799
Java将大图片转成小图片 http://javapub.iteye.com/blog/666607
分享到:
相关推荐
Java调整图片亮度【明暗调节】,第一张为原图,第二张是调节过高亮明暗的图片,可以看到明显的区别。利用图像缓冲区对图像数据进行处理,要用到java.awt.image 中的LookupTabel 类及子类ShortLookupTable和LookupOp...
实现点击图片变暗和变亮效果,单张图片实现点击变暗或者变亮效果
完整的暗棋,有主服务器,棋牌服务器,暗棋客户端,3部分组成,是一家公司的面试题,给他做完了,花了1个星期,现在给大家共享出来,以后谁去这个公司面试,就可以用这个了 包括: Bug列表.xls 测试用例.doc 其他....
java 图片变灰工具类源码,包含界面示例,类似于QQ头像的上线和离线效果,另附图像图形大小处理工具类
struts2 上传 java 图片水印 改变图片大小
java对图片改变大小,png防止变黑,加圆角 圆角外透明
一个简单的java图片浏览器,希望对你有所帮助!
一共包含了三种方法对于图片尺寸的修改———— 一种是使用第三方工具 ImageMagick 两种使用java自带类进行修改。
java图片上传、控制大小、宽度高度和图片裁剪并保存
java解析图片验证码
利用Java程序把多张图片合成一张图片,利用Java程序把多张图片合成一张图片。
完全基于java实现的把一组图片转换为图片,值得收藏!
将图片加载到内存 循环图片每个像素 找到你需要修改的像素 进行颜色修改。然后再图片BASE64
Java IO 图片加密,使用Java的stream流进行文件的读写,实现图片的加密和解密!
JAVA处理图片 加文字水印以及灰色透明背景,处理图片。
java图片压缩处理(可以压缩为任意大小
Java实现字节流与图片的转化
Java图片处理 包括图片缩放 图片切割 图片格式转换 图片彩色变黑白!
支持压缩图片的大小,可以根据想要的高度进行压缩。也支持过大压缩变小。支持各种静态图片和gif动态图片。