草庐IT

bufferedImage

全部标签

java - 将组件绘制到 BufferedImage 会导致显示损坏

我正在使用JScrollNavigator组件描述here,为了提供一个导航窗口到一个大型的“类似Canvas”的CAD组件,我已经嵌入了JScrollPane.我试图适应JScrollNavigator绘制Canvas的缩略图以为用户提供一些额外的上下文。但是,这样做会导致我的应用程序主框架的渲染损坏。具体就是调用paint(Graphics)的Action在视口(viewport)组件(即我的主Canvas)上,传入Graphics由BufferedImage创建的对象导致后续显示损坏;如果我注释掉这一行,一切正常。以下是JScrollNavigator的覆盖paintCompon

java - 如何缩放 BufferedImage

我查看了thisquestion,但它似乎并没有真正回答我的问题。我有一个图像文件,可以是任何分辨率。我需要将该图像加载到特定分辨率的BufferedImage对象中(例如,对于本例,800x800)。我知道Image类可以使用getScaledInstance()将图像缩放到新的大小,但我无法弄清楚如何将其恢复为BufferedImage。有没有一种简单的方法可以将缓冲图像缩放到特定大小?注意我不想按特定因素缩放图像,我想拍摄图像并制作特定尺寸。 最佳答案 是这样的吗?:/***ResizesanimageusingaGraphi

java - 使用 AffineTransform 旋转图像

我有一个名为Airplane的类(class)。在这个类中,我有一个img变量,它是一个BufferedImage类型。更重要的是我有类WorldMap覆盖函数paintComponent(Graphicsg):@OverridepublicvoidpaintComponent(Graphicsg){Graphics2Dg2d=(Graphics2D)g;g2d.drawImage(mapa,0,0,getWidth(),getHeight(),null);drawAirplanes(g2d);}函数drawAirplanes()看起来像这样:privatevoiddrawAirpla

java - 我能说出 BufferedImage 最初的文件类型是什么吗?

在我的代码中,我有一个BufferedImage加载了ImageIO像这样上课:BufferedImageimage=ImageIO.read(newFile(filePath);稍后,我想将它保存到一个字节数组中,但是ImageIO.write方法要求我选择GIF、PNG或JPG格式来编写我的图像(如所述在教程中here)。我想选择与原始图像相同的文件类型。如果图像最初是GIF,我不希望将其另存为PNG的额外开销。但如果图像最初是PNG,我不想通过将其另存为JPG或GIF来失去半透明度等。有没有一种方法可以从BufferedImage确定原始文件格式是什么?我知道我可以在加载图像时简

java - 将 JPanel 转换为 JScrollPane 中的图像

我想将JPanel转换为图像。我使用了以下方法:publicBufferedImagecreateImage(){intw=getWidth();inth=getHeight();BufferedImagebi=newBufferedImage(w,h,BufferedImage.TYPE_INT_RGB);Graphics2Dg=bi.createGraphics();paint(g);returnbi;}但问题是JPanel包含在JScrollPane中。因此,当我将jpanel转换为图像时,图像仅包含jpanel中可见的部分,而隐藏在滚动Pane内的部分不包含在图像中。是否有任何

java - 如何获取 bufferedImage 的缩放实例

我想获得缓冲图像的缩放实例,我做到了:publicvoidanalyzePosition(BufferedImageimg,intx,inty){img=(BufferedImage)img.getScaledInstance(getWidth(),getHeight(),Image.SCALE_SMOOTH);....}但我确实得到了一个异常(exception):Exceptioninthread"AWT-EventQueue-0"java.lang.ClassCastException:sun.awt.image.ToolkitImagecannotbecasttojava.aw

java - 如何将图标从 JLabel 转换为 BufferedImage?

简单,非常直接,但google叔叔和我似乎感到困惑。我有一个JLabel,它已经有自己的Icon。如何将从JLabel获取的Icon转换为BufferedImage?有什么办法:我试过像这样多次转换..finalBufferedImagebf1=(BufferedImage)((Image)jll_img.getIcon());..但它失败了。 最佳答案 importjava.awt.*;importjava.awt.image.*;importjavax.swing.*;importjava.net.URL;classGetIma

java - BufferedImage——获取灰度彩色模型图片中某个像素的值

我有一个BufferedImage使用此代码转换为灰度。我通常通过BufferedImage.getRGB(i,j)获取像素值,然后获取R、G和B的每个值。但是如何获取灰度图像中像素的值?编辑:抱歉,忘记转换了。staticBufferedImagetoGray(BufferedImageorigPic){BufferedImagepic=newBufferedImage(origPic.getWidth(),origPic.getHeight(),BufferedImage.TYPE_BYTE_GRAY);Graphicsg=pic.getGraphics();g.drawImage

java - 更改 BufferedImage 的 alpha 值?

如何在Java中更改BufferedImage的全局alpha值?(即使图像中alpha值为100的每个像素的alpha值为80) 最佳答案 @尼尔科菲:谢谢,我也一直在找这个;但是,您的代码对我来说效果不是很好(白色背景变成黑色)。我编写了类似这样的代码,它完美地工作:publicvoidsetAlpha(bytealpha){alpha%=0xff;for(intcx=0;cx其中obj_img是BufferedImage.TYPE_INT_ARGB。我用setAlpha((byte)125)改变alpha;alpha范围现在是

java - 缩放在 Java 中存储为 byte[] 的图像

我上传了一个带有struts表单的文件。我将图像作为byte[],我想对其进行缩放。FormFilefile=(FormFile)dynaform.get("file");byte[]fileData=file.getFileData();fileData=scale(fileData,200,200);publicbyte[]scale(byte[]fileData,intwidth,intheight){//TODO}有人知道一个简单的函数可以做到这一点吗?publicbyte[]scale(byte[]fileData,intwidth,intheight){ByteArrayI