草庐IT

bufferedimage

全部标签

java - BufferedImage中RGB数据的快速加载和绘制

在Windows上运行的一些Java代码中,我正在从磁盘读取一些大块RGB数据,并希望尽快将其显示到屏幕上。RGB数据是每channel8位,没有任何alpha。目前我有如下代码来创建BufferedImage。BufferedImagegetBufferedImage(Filefile,intwidth,intheight){byte[]rgbData=readRGBFromFile(file);WritableRasterraster=Raster.createInterleavedRaster(rgbData,width,height,width*3,//scanlineStri

java - 在 BufferedImage 上绘制填充矩形

因此,我正在尝试创建一个应用程序,可以将包含敏感信息的调查部分涂黑。但是我遇到了一些问题。我想做的是在BufferedImage上绘制填充的黑色矩形,给定x、y、宽度和所需区域的高度以涂黑,然后将该新图像写回我的文件系统。这是我的代码。FileimageFile=newFile("images/template.jpg");BufferedImageimg=ImageIO.read(imageFile);Graphics2Dgraph=img.createGraphics();graph.setColor(Color.BLACK);graph.fill(newRectangle(x,y

java - 如何将 BufferedImage 转换为 InputStream?

这个问题在这里已经有了答案:HowtogetanInputStreamfromaBufferedImage?(3个答案)关闭3年前。我正在使用servlet上传图像。为了执行调整大小操作,我将InputStream转换为BufferedImage。现在我想把它保存在mongoDB中。因为,据我所知,我是mongoDB的新手,GridFS采用InputStream。那么,有什么办法可以将BufferedImage转为InputStream呢?

java - 将 BufferedImage 复制到剪贴板

如何将BufferedImage存储到系统剪贴板? 最佳答案 这是取自here的工作代码测试成功packageorg.life.java.so.questions;/***@authorJigar*/importjava.awt.*;importjava.awt.datatransfer.*;importjava.awt.image.*;importjava.io.*;publicclassCopyImagetoClipBoardimplementsClipboardOwner{publicCopyImagetoClipBoard(

java - bufferedImage.getRGB(x, y) 不产生 alpha

我有一个BufferedImagei,我想得到Color来自该图像的某个像素包括alpha值。使用x和y坐标标识像素。这是我尝试过的:Colorc=newColor(i.getRGB(x,y));出于某种原因,新的颜色对象包含正确的RGB,但alpha丢失了。我做错了什么?提前致谢 最佳答案 您正在使用的单参数Color构造函数会丢弃alpha信息。改用双参数版本并为hasalpha传入true:Colorc=newColor(i.getRGB(x,y),true);相关Javadoc:Color(intrgb)Createsano

java - 如何计算java BufferedImage文件大小

我有一个基于servlet的应用程序,它提供来自本地存储文件的图像。我添加了逻辑,允许应用程序将图像文件加载到BufferedImage,然后调整图像大小,在图像顶部添加水印文本,或两者兼而有之。我想在写出图像之前设置内容长度。除了将图像写入临时文件或字节数组之外,有没有办法找到BufferedImage的大小?如果有助于计算大小,所有文件都被写为jpg。 最佳答案 BufferedImageimg==newBufferedImage(500,300,BufferedImage.TYPE_INT_RGB);ByteArrayOutp

java - 将数据 URL 转换为 BufferedImage

我有一个来自图像文件的数据URL,必须将它传递给另一个函数。沿着这条从Data-URL到BufferedImage的路径,它需要是一个byteArray。我的方法如下:StringdataUrl;byte[]imageData=dataUrl.getBytes();//passthebyteArrayalongthepath//createBufferedImagefrombyteArrayBufferedImageinputImage=ImageIO.read(newByteArrayInputStream(imageData));//Ifthepictureisnull,thent

java - 如何序列化包含 BufferedImages 的对象

我正在尝试用Java创建一个简单的图像编辑程序。我做了一个ImageCanvas包含有关正在编辑的图像的所有信息的对象(一些基本属性、正在应用的效果列表、BufferedImage层列表等),我想要一种简单的方法将其保存到磁盘以便它可以稍后再次打开。我认为使用Java的默认Serializable接口(interface)可能正是我要找的,我可以将整个对象写入文件,稍后再将其读回内存。然而,ImageCanvas包括一个ArrayList,和BufferedImage的不可序列化(其他一切都是)。我知道可以覆盖writeObject()和readObject()方法,但我从来没有这样做

java - 有没有一种简单的方法来比较 BufferedImage 实例?

我正在处理一个Java应用程序的一部分,该应用程序将图像作为字节数组,将其读入java.awt.image.BufferedImage实例并将其传递给第三方库以供使用处理。对于单元测试,我想拍摄一张图像(来自磁盘上的文件)并断言它与代码处理过的同一图像相同。我的预期BufferedImage是使用ImageIO.read(URL)从磁盘上的PNG文件中读取的。我的测试代码将同一个文件读入BufferedImage并将其作为PNG写入字节数组以提供给被测系统。当被测系统将字节数组写入新的BufferedImage时,我想以一种有意义的方式断言这两个图像是相等的。使用equals()(继承

java - 将 Graphics2D 转换为图像或 BufferedImage

我这里有个小问题。我有一个小程序,用户可以在其中“绘制”。为此,我使用了java.awt.Graphics2D。但是,我该怎么做才能将用户绘制的图像保存为JPEG图像,或者至少将其转换为BufferedImage或其他东西?我不知道该怎么做。谢谢。 最佳答案 让他们通过Graphics2D对象直接在BufferedImage中绘制,您可以通过getGraphics()获得该对象。然后使用ImageIO.write(...)将图像输出到您想要的任何文件类型(这是受支持的)。ImageIOAPI应该可以帮助您:ImageIOAPI.您会