标签: bufferedimage

如何在运行时从JTextArea运行/编译Java代码?

我有一个JInternalFrame,它绘有BufferedImage并包含在JFrame的JDesktopPane中.我还有一个JTextArea,我想编写一些java代码(函数),它将当前JInternalFrame的绘制BufferedImage作为输入,在对此输入进行一些操作后,它返回另一个操作的BufferedImage,它再次使用新的操作Image绘制JInternalFrame.

操纵JTextArea的java代码: -

public BufferedImage customOperation(BufferedImage CurrentInputImg) 
{    
    Color colOld;
    Color colNew;

    BufferedImage manipulated=new BufferedImage(CurrentInputImg.getWidth(),CurrentInputImg.getHeight(),BufferedImage.TYPE_INT_ARGB);

    // make all Red pixels of current image black 
    for(int i=0;i< CurrentInputImg.getWidth();i++) {
        for(int j=0;j< CurrentInputImg.getHeight(),j++) { 
            colOld=new Color(CurrentInputImg.getRGB(i,j));
            colNew=new Color(0,colOld.getGreen(),colOld.getBlue(),colOld.getAlpha());
            manipulated.setRGB(i,j,colNew.getRGB());
        } 
    }

    return manipulated;
}
Run Code Online (Sandbox Code Playgroud)

如何在运行时运行/编译此JTextArea Java代码并获取一个新的操作图像以便在JInternalFrame上绘制?

这是我的主要课程:

(这个类不是实际的,但是我为你创建了它,用于包含JTextArea,JInternalFrame,Apply Button的基本接口)

import java.awt.*;    
import java.awt.event.*;    
import javax.swing.*;    
import javax.swing.event.*;    
import javax.swing.JInternalFrame;    
import javax.swing.JDesktopPane;    
import java.awt.image.*;    
import javax.imageio.*;    
import java.io.*;    
import java.io.File;    
import java.util.*;

class MyCustomOperationSystem extends JFrame    
{

    public JInternalFrame ImageFrame;     
    public BufferedImage …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage runtime compilation

0
推荐指数
1
解决办法
2304
查看次数

尝试使用 openGL 创建纹理时缓冲区大小不足

我目前正在尝试使用 JOGL 生成带纹理的多边形表面,但收到一条我不明白的错误消息。Eclipse 告诉我“java.lang.IndexOutOfBoundsException:缓冲区中需要 430233 个剩余字节,只有 428349”。据我所知,由 readTexture 方法生成的缓冲图像的大小不足以与 glTex2D() 方法一起使用。但是,我不确定如何解决该问题。代码的相关部分如下,任何帮助将不胜感激。

public void init(GLAutoDrawable drawable) 
{
    final GL2 gl = drawable.getGL().getGL2();
    GLU glu = GLU.createGLU();
    //Create the glu object which allows access to the GLU library\

    gl.glShadeModel(GL2.GL_SMOOTH);              // Enable Smooth Shading
    gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);    // Black Background
    gl.glClearDepth(1.0f);                      // Depth Buffer Setup
    gl.glEnable(GL.GL_DEPTH_TEST);              // Enables Depth Testing
    gl.glDepthFunc(GL.GL_LEQUAL);               // The Type Of Depth Testing To Do
    gl.glEnable(GL.GL_TEXTURE_2D);
    texture = genTexture(gl);
    gl.glBindTexture(GL.GL_TEXTURE_2D, texture);
    TextureReader.Texture texture = null;
    try {
        texture …
Run Code Online (Sandbox Code Playgroud)

java opengl buffer textures bufferedimage

0
推荐指数
1
解决办法
1898
查看次数

尝试在 Java 中绘制 24 位图像

我有一个图像,其中每个像素为 4 字节,即红色掩码为 0xFF0000,绿色为 0xFF00,蓝色为 0xFF。我读入图像并将其作为函数传递给函数(byte imgBuff,int w,int h) 然后我有

  void fun(byte imgBuff,int w,int h)
  {
      Graphics g;
      BufferedImage img;
      DataBuffer dBuffer = new DataBufferByte(imgBuff, w * h);
      WritableRaster wr = Raster.createPackedRaster(dBuffer,w,h,24,null);
      DirectColorModel dcm = new DirectColorModel(24,0xFF0000,0xFF00,0xFF);
      img = new BufferedImage(dcm,wr,false,null);
      g = getGraphics();
      g.drawImage(img,x,y,w,h,null);
  }
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时我得到

线程“Thread-23”中的异常 java.lang.IllegalArgumentException:光栅 sun.awt.image.SunWritableRaster@1d82ed7 与 ColorModel DirectColorModel 不兼容:rmask=ff0000 gmask=ff00 bmask=ff amask=0

如何从 bytebuffer viaPackedRaster到 Buffered Image for 24bit over 4 bytes

java bufferedimage illegalargumentexception

0
推荐指数
1
解决办法
2014
查看次数

将int [] []的RGB保存为图像文件

我有图像的RBG值的数组int [] [],我需要将它存储到jpg文件.我试着这样做:

 BufferedImage image = ImageIO.read(new ByteArrayInputStream(result));
 ImageIO.write(image, "jpg", new File("/path/", "snap.jpg"));
Run Code Online (Sandbox Code Playgroud)

但我有一个int [] []不是byte []数组.如何将int [] []转换为byte []而不会丢失值?

java rgb bufferedimage image

0
推荐指数
1
解决办法
2049
查看次数

我可以在java中从左到右进行图像alpha淡化吗?

我正在制作一个游戏,并希望从左到右让单个图像"淡入淡出",图像的左侧部分的alpha值为1.0,右侧的alpha值为0.0.(注意:我不希望它随着时间的推移改变它的样子,如淡入或淡出,但只是从左到右逐渐消失并保持不变).尝试绘制我想要的最终结果如下所示:

lll lll ll ll l l  l    l            l
lll lll ll ll l l  l    l            l
lll lll ll ll l l  l    l            l
lll lll ll ll l l  l    l            l
lll lll ll ll l l  l    l            l
lll lll ll ll l l  l    l            l
Run Code Online (Sandbox Code Playgroud)

'l'的密度代表alpha

我目前正在使用TYPE_INT_RGB的缓冲图像,并希望尽可能保持相同.

是否有任何内置的java类可以帮助我做到这一点,或者至少是一种(相对简单的)自己做的方式,这是我无法弄清楚的?


编辑:我不想有任何形式的不透明框架.我想在另一个BufferedImage上绘制一个BufferedImage(带有alpha渐变).

java bufferedimage alpha fade

0
推荐指数
1
解决办法
588
查看次数

如何将缓冲图像中的 IndexColorModel 设置为具有某些颜色和一种透明?

我正在尝试绘制一个显示某物质量的条形图。

我创建了一个这样的缓冲图像:

 private static BufferedImage createBufferedImage(int width, int height) {
        int[] palette = {0x00ff00ff, 0xffff00ff, 0xff0000ff , 0xffff0000};
        IndexColorModel colorModel = new IndexColorModel(2, 4,
            palette, 0, true, 0, DataBuffer.TYPE_BYTE);
        return new BufferedImage(width,height,BufferedImage.TYPE_BYTE_INDEXED, colorModel);
    }  
Run Code Online (Sandbox Code Playgroud)

colorModel 应该有颜色:绿色、黄色、红色和一种透明的。条的颜色取决于质量,如下所示:

 private static Color getBarColor(double quality) {
        if (quality >= 0.70) {
            return Color.GREEN;
        } else if (quality >= 0.40) {
            return Color.YELLOW;
        } else {
            return Color.RED;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在创建图形来绘制条形并设置颜色:

Graphics2D g = image.createGraphics();
g.setColor(getBarColor(quality));
Run Code Online (Sandbox Code Playgroud)

但是,当我将质量的颜色设置为大于 0.7 时,它会绘制蓝色条,而对于低于 0.7 的质量,id 会绘制红色。

我认为问题出在我的调色板上,我没有正确设置颜色,当我试图获得绿色并且它不在那里时,设置的可能最接近。我认为格式 RRGGBBAA 应该用于 …

java graphics bufferedimage

0
推荐指数
1
解决办法
1975
查看次数

将 8 位灰度图像字节数组转换为 BufferedImage

我有一个字节数组,其中包含原始灰度 8 位图像的数据,我需要将其转换为 BufferedImage。我尝试过这样做:

BufferedImage image = ImageIO.read(new ByteArrayInputStream(bytes));
Run Code Online (Sandbox Code Playgroud)

但是,生成的image对象为 null,这意味着我在这里做错了。

进行这种转换的正确方法是什么?

java bufferedimage image type-conversion

0
推荐指数
1
解决办法
1239
查看次数

Java形状转换为BufferedImage

我想在JLabel上制作矩形并将该矩形转换为BufferedImage ......就像在paint shop中的图层一样... drafferedImage并调整大小......任何人都可以帮助

我做到了这一点,但它没有奏效

Rectangle2D rectangle2D;
                            BufferedImage bi = new BufferedImage(bimg.getWidth(), bimg.getHeight(), BufferedImage.TYPE_INT_RGB);
                            Graphics2D big = bi.createGraphics();
                            rectangle2D = new Rectangle2D.Float(eX, eY, sW, sH);
                            big.setStroke(new BasicStroke(5));
                            big.setColor(color);
                            shapePaint = new TexturePaint(bi, rectangle2D);
                            g2d.setPaint(shapePaint);
Run Code Online (Sandbox Code Playgroud)

java graphics swing bufferedimage awt

-1
推荐指数
1
解决办法
1115
查看次数

BufferedImage的LinkedList

我正在尝试优化我使用教程构建的Animation类,但每当我尝试将BufferedImage添加到BufferedImage类型的LinkedList时,我都会得到NullPointerException.

这是我的代码:

public class Animation
{
    private int speed;
    private int frames;
    private int index = 0;
    private int count = 0;

    private LinkedList<BufferedImage> img;

    private BufferedImage currentImg;


    public Animation(int speed, BufferedImage img1, BufferedImage img2)
    {
        this.speed = speed;

        img.add(img1);
        img.add(img2);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能将BufferedImage添加到LinkedList?

java animation bufferedimage linked-list

-1
推荐指数
1
解决办法
75
查看次数

如何翻转和保存图像

我的形象宣言:

ImageIcon imageIcon1 = new ImageIcon(main.class.getResource("image1.png"));
Image image1 = imageIcon1.getImage();
Run Code Online (Sandbox Code Playgroud)

如何拍摄image1,沿着垂直轴翻转并将其保存为另一张图像?

我google了,我发现的每个解决方案都带有某种类型的转换错误.此外,如果有更有效的方式来声明我的形象,请告诉我.

java bufferedimage image flip imageicon

-2
推荐指数
1
解决办法
1098
查看次数

如何将带有字母的图像转换为文本?

我需要在图像中找到字母.我需要一个帮助来编写一个算法来解码图像.

我把图像转换成了一个ByteArrayOutputStream但我不知道我用它做了什么.

有我的java代码:

URL url = new URL(urlImg);
WebClient webClient = new WebClient(BrowserVersion.getDefault());
WebRequest reqImg = new WebRequest(url);
reqImg.setHttpMethod(HttpMethod.GET);
InputStream imgStream = webClient.getPage(reqImg).getWebResponse().getContentAsStream();
BufferedImage img = ImageIO.read(imgStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "png", out);
Run Code Online (Sandbox Code Playgroud)

依赖关系:net.sourceforge.htmlunit htmlunit 2.15

JDK 1.6.0_43

java captcha bufferedimage webclient javax.imageio

-2
推荐指数
1
解决办法
1万
查看次数