博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 去除图片白边 两种方法的比较
阅读量:7007 次
发布时间:2019-06-27

本文共 1587 字,大约阅读时间需要 5 分钟。

hot3.png

swt 下的图片处理:

ImageData ideaImageData = new ImageData(path);

ideaImageData = getWhite(ideaImageData);

ideaImageData.transparentPixel = ideaImageData.palette.getPixel(new RGB(255, 255, 255));

Image fullImage = new Image(container.getDisplay(), ideaImageData);

Label label = new Label(container, SWT.NONE);

label.setImage(fullImage);

//-----------------------------------------------------------------

效果不错

public ImageData getWhite(ImageData imageData) {

int threshold = 220;

RGB white = new RGB(255, 255, 255);

for (int i = 0; i < imageData.width; i++) {

for (int j = 0; j < imageData.height; j++) {

RGB rgb = imageData.palette.getRGB(imageData.getPixel(i, j));

if (rgb.red > threshold && rgb.green > threshold && rgb.blue > threshold)

imageData.setPixel(i, j, imageData.palette.getPixel(white));

}

}

return imageData;

}

效果比较差

public ImageData toPureWhite(ImageData imageData) {

int redShift = imageData.palette.redShift;

int greenShift = imageData.palette.greenShift;

int blueShift = imageData.palette.blueShift;

int[] lineData = new int[imageData.width];

int r, g, b, pixelValue;

for (int y = 0; y < imageData.height; y++) {

// Analyze each pixel value in the line

imageData.getPixels(0, y, imageData.width, lineData, 0);

for (int x = 0; x < lineData.length; x++) {

pixelValue = lineData[x];

r = pixelValue & redShift;

g = (pixelValue & greenShift) >> 8;

b = (pixelValue & blueShift) >> 16;

System.out.println("r=" + r + " g=" + g + " b=" + b);

 if (r >= 230 && g > 230 && b > 150)

imageData.setPixel(x, y, 0xFFFFFF);

}

}

return imageData;

}

转载于:https://my.oschina.net/wheatma/blog/270565

你可能感兴趣的文章
Tomcat中用JNDI方式加载JDBC DataSource以连接数据库
查看>>
android解析HashMap格式的json
查看>>
AFNetworking 源码分析(一)
查看>>
深入理解channel:设计+源码
查看>>
【Android】RxJava的使用(一)基本用法
查看>>
React Fiber 原理介绍
查看>>
断路器HystrixCircuitBreaker
查看>>
前端爬坑之旅--echarts渲染时canvas变为100px
查看>>
CODING 最佳实践:快课网研发效能提升之路
查看>>
实现一个平行四边形
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
elasticsearch v6.5.4配置
查看>>
Python2+Selenium入门01-环境准备
查看>>
golang协程池设计
查看>>
微服务之数据同步Porter
查看>>
phpStudy 升级 mysql5.7 出现的问题
查看>>
mp4文件如何转换为webm格式
查看>>
(一)如何实现一个单进程阻塞的网络服务器
查看>>
微信小程序设置上一页数据
查看>>
两种让用户自定义项目主题色的方案
查看>>