JavaFX灰度图像
2018-01-03 21:00
106 查看
处理获得灰度图像使用JavaFX类
代码如下:import javafx.scene.image.PixelReader; import javafx.scene.image.PixelWriter; import javafx.scene.image.WritableImage; import javafx.scene.paint.Color; public class GrayImage { //获取灰度图 public WritableImage getGrayByColor(WritableImage image) { int width = (int) image.getWidth(); int height = (int) image.getHeight(); WritableImage grayImage = new WritableImage(width,height); PixelReader pixelReader = image.getPixelReader(); PixelWriter pixelWriterGray = grayImage.getPixelWriter(); for(int i=0;i<width;i++) { for(int j=0;j<height;j++) { Color color = pixelReader.getColor(i, j); color = color.grayscale(); pixelWriterGray.setColor(i,j,color); } } return grayImage; } //计算获取灰度图 public WritableImage getGrayByFormula(WritableImage image) { int width = (int) image.getWidth(); int height = (int) image.getHeight(); WritableImage grayImage = new WritableImage(width,height); PixelReader pixelReader = image.getPixelReader(); PixelWriter pixelWriterGray = grayImage.getPixelWriter(); for(int i=0;i<width;i++) { for(int j=0;j<height;j++) { int color = pixelReader.getArgb(i, j); int r = (color >> 16) & 0xff; int g = (color >> 8) & 0xff; int b = color & 0xff; int gray = (int) (0.299 * r + 0.587 * g + 0.114 * b); int newPixel = argbToPixel(255, gray, gray, gray); pixelWriterGray.setArgb(i, j, newPixel); } } return grayImage; } private int argbToPixel(int alpha, int red, int green, int blue) { int newPixel = 0; newPixel += alpha; newPixel = newPixel << 8; newPixel += red; newPixel = newPixel << 8; newPixel += green; newPixel = newPixel << 8; newPixel += blue; return newPixel; } }
效果如下:
代码中有两种方法,第一种是使用Color类的库方法直接获取,第二种是自己获取像素,使用公式计算。效果一致。
相关文章推荐
- PHP GD 图像处理组件的常用函数总结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- JavaScript实现256色转灰度图
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- Javascript图像处理思路及实现代码
- Java图像处理教程之正片叠底效果的实现
- PHP图像处理之使用imagecolorallocate()函数设置颜色例子
- java数字图像处理基础使用imageio写图像文件示例
- c++图像处理:24位真彩图颜色变换实例
- 使用Java进行图像处理的一些基础操作
- javascript图像处理―边缘梯度计算函数
- Javascript图像处理―阈值函数实例应用
- Javascript图像处理―虚拟边缘介绍及使用方法
- Android-如何将RGB彩色图转换为灰度图方法介绍
- Android图像处理之霓虹滤镜效果
- C++ HLSL实现简单的图像处理功能
- PHP图像处理类库及演示分享
- CI框架文件上传类及图像处理类用法分析
- php图像处理函数大全(推荐收藏)