本文将分享在Java中调整BufferedImage的亮度和对比度的详细内容,并且还将对java设置屏幕亮度进行详尽解释,此外,我们还将为大家带来关于BufferedImage到JavaFX图像、Bu
本文将分享在Java中调整BufferedImage的亮度和对比度的详细内容,并且还将对java设置屏幕亮度进行详尽解释,此外,我们还将为大家带来关于BufferedImage到JavaFX图像、BufferedImage到Java中的BMP、BufferedImage纹理没有出现在java3D中、Java BufferedImage的基本用法的相关知识,希望对你有所帮助。
本文目录一览:- 在Java中调整BufferedImage的亮度和对比度(java设置屏幕亮度)
- BufferedImage到JavaFX图像
- BufferedImage到Java中的BMP
- BufferedImage纹理没有出现在java3D中
- Java BufferedImage的基本用法
在Java中调整BufferedImage的亮度和对比度(java设置屏幕亮度)
我正在使用某些框架处理一堆图像,而我得到的只是一堆BufferedImage
对象。不幸的是,这些图像真的很暗,我想加亮它们并稍微调整对比度。
就像是:
BufferedImage image = something.getImage();image = new Brighten(image).brighten(0.3); // for 30%image = new Contrast(image).contrast(0.3);// ...
有任何想法吗?
答案1
小编典典实际上,那很容易。
RescaleOp rescaleOp = new RescaleOp(1.2f, 15, null);rescaleOp.filter(image, image); // Source and destination are the same.
scaleFactor
1.2和offset
15的A 似乎使停下来的图像更亮。
好极了!
在的文档中RescaleOp
了解更多信息。
BufferedImage到JavaFX图像
我有一个从主监视器截取的图像,因此我想将其添加到Java FX ImageView
:
@FXML
protected ImageView screenshot() throws AWTException,IOException {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageView imageView = new ImageView();
Image image = capture; //Error
imageView.setImage(image);
return imageView;
}
我正在尝试将设置为BufferedImage capture
,javafx.scene.image.Image
image
但是类型不兼容,也无法强制转换。我该如何纠正?
BufferedImage到Java中的BMP
我有一个BufferedImage对象,我想将其编码为BMP格式并将其保存到磁盘。
我该怎么做呢?
在JPEG
它的确定:
BufferedImage img; //here is an image ready to be recorded into the hard disk
FileOutputStream fout = new FileOutputStream("image.jpg");
JPEGImageEncoder jencoder = JPEGCodec.createJPEGEncoder(fout);
JPEGEncodeParam enParam = jencoder.getDefaultJPEGEncodeParam(img);
enParam.setQuality(1.0F,true);
jencoder.setJPEGEncodeParam(enParam);
jencoder.encode(img);
fout.close();
BufferedImage纹理没有出现在java3D中
如何解决BufferedImage纹理没有出现在java3D中?
| 我在java3D和stackoverflow上还是很新的。我的问题是我尝试将BufferedImage纹理添加到矩形,但它没有出现。我将BufferedImage保存到文件中,因此我确定它不为空。 \“ bi \”是BufferedImage。我能找到的关于java3D的一切似乎都已经过时了。注释是关于上面的命令,而不是下面的命令。 QuadArray alap = new QuadArray(4,QuadArray.COORDINATES | GeometryArray.TEXTURE_COORDINATE_2);
// [...] setting coordinates for the polygon (rectangle)
Appearance alapAppearance = new Appearance();
polygonAttributes alapPa = new polygonAttributes();
alapAppearance.setpolygonAttributes(alapPa);
alap.setTextureCoordinate (0,new TexCoord2f(0.0f,0.0f));
alap.setTextureCoordinate (0,1,new TexCoord2f(1.0f,2,1.0f));
alap.setTextureCoordinate (0,3,1.0f));
//tryed in different order
TextureAttributes texAttr = new TextureAttributes();
texAttr.setTextureMode(TextureAttributes.REPLACE);
TextureLoader loader = new TextureLoader(bi,TextureLoader.ALLOW_NON_POWER_OF_TWO);
//Tryed with \"RGB\" flag too (as second parameter).
Texture t1 = loader.getTexture();
t1.setBoundaryModeS(Texture.CLAMP_TO_EDGE);
t1.setBoundaryModeT(Texture.CLAMP_TO_EDGE);
alapAppearance.setCapability(Appearance.ALLOW_TEXTURE_WRITE);
alapAppearance.setCapability(Appearance.ALLOW_TEXTURE_ATTRIBUTES_WRITE);
//I don\''t think it\''s really needed,but can\''t hurt I quess.
alapAppearance.setTextureAttributes(texAttr);
alapAppearance.setTexture(t1);
tfg.addChild(new Shape3D(alap,alapAppearance));
//tfg = transformGroup
解决方法
Java BufferedImage的基本用法
1:读取本地图片:
File file = new File(”001.jpg“);//本地图片
BufferedImage image=(BufferedImage)ImageIO.read(file);
2:读取一张网上图片:
URL url= new URL(”http://*******“);//url 为图片的URL 地址
BufferedImage image=(BufferedImage)ImageIO.read(url);
3:获取图片的每个像素点的像素值(获取个点像素值是后期图片操作的基础):
//获取图像的宽度和高度
int width = bi.getWidth();
int height = bi.getHeight();
int [] pot = new int[width*height];
int k=0;
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){//行扫描
pot[k] = bi.getRGB(j, i);
k++;
System.out.println(pot[i]);
}
4:计算图片保存后的大小:
要计算图片保存时的大小,一种简单的方法就是计算图片的输出刘的大小;将输出流转为 一个 byte 数组;然后计算数组的长度:
image=(BufferedImage)ImageIO.read(url);
ByteArrayOutputStream out =new ByteArrayOutputStream();
ImageIO.write(image,"png",out);//png 为要保存的图片格式
byte[] barray = out.toByteArray();
out.close();
System.out.println(barray.length)
//获取文件的类型
String fileType = faceImg.substring(faceImg.lastIndexOf(".") + 1, faceImg.length());
//获取文件名称
String fileName = faceImg.substring(faceImg.lastIndexOf("/") + 1, faceImg.length());
//把地址转换成URL对象
URL url = new URL(faceImg);
//读取图片到缓冲数组中
BufferedImage image = ImageIO.read(url);
ByteArrayOutputStream out = new ByteArrayOutputStream();
//把文件写到输出流中
ImageIO.write(image, fileType, out);
//创建一个输入流
InputStream inputStream = new ByteArrayInputStream(out.toByteArray());
//获取图片的具体类型
String contentType = AliyunOSSUtil.contentType(fileType);
//上传阿里云
AliyunOssResult result = AliyunOSSUtil.upload(inputStream, contentType, fileName);
今天关于在Java中调整BufferedImage的亮度和对比度和java设置屏幕亮度的分享就到这里,希望大家有所收获,若想了解更多关于BufferedImage到JavaFX图像、BufferedImage到Java中的BMP、BufferedImage纹理没有出现在java3D中、Java BufferedImage的基本用法等相关知识,可以在本站进行查询。
本文标签: