包含java图片去白底的词条
本篇文章给大家谈谈java图片去白底,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中载入图片的白色背景如何去掉?
- 2、求教,java如何修改一张图片的背景色
- 3、java怎么实现将 bmp图片黑底白字转换为白底黑字?将白色设置为透明色,谢谢
- 4、java / jsp图片处理
java中载入图片的白色背景如何去掉?
你不理解图片是怎么表示的,普通的位图都是矩形区域,读到程序里就是一个每个像素点值的二维数组,像素的表示有多种情况,常见的是三基色红、绿、蓝 24 位整型数值表示,像 jpeg、bmp 等都是,是不带透明的。所谓透明那是因为有除了三原色值外的其他信息,例如 alpha 值,这样每个像素就占 32 位,它只是看起来是透明的而已,实际上还是一个矩形。
原来的图片要是不带透明的那你得把每个像素进行转换才能让它透明。swing 里处理图片比较麻烦,感觉还不如 swt 来的方便,你还不如预先把图片用软件处理成 png 的再用。
-------------------------------------------------------------
用图片处理软件(如 ps)把背景 p 掉。当然你也可以网上找个好用一点的软件把背景 p 掉。总之预先把背景 p 掉。
求教,java如何修改一张图片的背景色
BufferedImage 把图片转换成二维数组, 然后把指定颜色,修改成你想要的颜色。
需要注意 背景色和其他颜色交叉的地方, 需要有一个容差的范围. 让指定的颜色在某个范围内
或者用算法处理边缘部分的颜色.
java怎么实现将 bmp图片黑底白字转换为白底黑字?将白色设置为透明色,谢谢
代码如下:
package com.baidu.demo019;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
public class App extends JFrame {
private static final long serialVersionUID = 1L;
public App() {
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Box box = Box.createVerticalBox();
this.add(box);
// 源图像路径
String imageFile = "images/demo019.bmp";
// 源图像
BufferedImage image1 = getImage(imageFile);
JLabel label1 = new JLabel(new ImageIcon(image1));
JPanel panel1 = new JPanel(new BorderLayout());
panel1.add(label1);
box.add(panel1);
// 转换后的图像
Image image2 = translateImage(image1);
JLabel label2 = new JLabel(new ImageIcon(image2));
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add(label2);
box.add(panel2);
}
BufferedImage getImage(String imageFile) {
BufferedImage image = null;
try {
image = ImageIO.read(new File(imageFile));
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
// 转换图像 黑底白字转换为白底黑字,白色设置为透明色
private Image translateImage(BufferedImage image) {
int width = image.getWidth();
int height = image.getHeight();
BufferedImage target = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
for (int i = 0; i width; i++) {
for (int j = 0; j height; j++) {
int val = image.getRGB(i, j);
int red = (val 16) 0xff;
int green = (val 8) 0xff;
int blue = val 0xff;
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
int alpha = 0xff;
if ((red + green + blue) / 3 = 0xff) {
alpha = 0x00;
}
int pixel = (alpha 24) | (red 16) | (green 8) | (blue);
target.setRGB(i, j, pixel);
}
}
return target;
}
public static void main(String[] args) {
new App().setVisible(true);
}
}
运行结果:
java / jsp图片处理
首先你先用javax.imageio.imageReader类将用户上传的图片读取到内存中生成BufferImage对象,此对象能够对图像像素矩阵进行操作,
转换成黑白图片以及白色显示为透明状态都有常用的算法,其实就是操作图片的像素点
处理完后再通过imageWriter类将图片存为图片文件,在页面上用img标签显示就行了
具体的函数方法去参考api
jdk 里面有对jepg 和 bmp格式图像读取的类
关于java图片去白底和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。