Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将ASCII值转换为RGB值?_Java_Image - Fatal编程技术网

如何在Java中将ASCII值转换为RGB值?

如何在Java中将ASCII值转换为RGB值?,java,image,Java,Image,我正在尝试将文本文件转换为图像。我尝试读取文件并将字符的ASCII值转换为RGB值。但结果图像只是一个空白图像。有人能帮我吗?这是我代码的一部分 for(int i=0;i<=img.getHeight();i++) { while((line=br.readLine())!=null) for(int j=0;j<line.length();j++) { int color=(int)line.char

我正在尝试将文本文件转换为图像。我尝试读取文件并将字符的ASCII值转换为RGB值。但结果图像只是一个空白图像。有人能帮我吗?这是我代码的一部分

for(int i=0;i<=img.getHeight();i++)
    {
        while((line=br.readLine())!=null)
        for(int j=0;j<line.length();j++)
        {
            int color=(int)line.charAt(j);
            img.setRGB(j,i,color);
        }
    }

谢谢

java颜色具有内置支持

Color.decode(hexString)
问题是,从ASCII文本获取的字符值将在[0…255]8位值范围内。BuffereImage.setRGBx,y,color要求颜色为完整的32位ARGB值。因为你的像素的所有8个高位都是0,所以颜色被解释为完全透明,这就是为什么你会看到一张空白图片

对于剩下的答案,我假设你实际上有这样存储的像素,尽管这不是很常见。如果您显示了输入数据,我就可以进行验证了

取决于输入的ASCII数据包含RGB的内容?阿格?灰色数据?,您需要打包值以表示完整的ARGB值:

对于灰色:

int gray = line.charAt(j) & 0xff;
int ARGB = 0xff000000 | gray << 16 | gray << 8 | gray;
对于ARGB,需要以四个j+=4的步长递增j:


什么是ASCII值?您正在尝试转换ASCII艺术还是文本文件的实际RGB值是用ASCII编写的?你能举个例子吗?你是如何在文本文件中将RGB值编码为字符的?它是一个普通的.txt文件。我试图逐字符读取它,将该字符转换为int并将其添加到图像中。您可能正在谈论ASCII格式的PPM图像吗?如果你能发布一个输入数据的样本,它肯定会帮助人们理解你想要实现的目标。@TejaswiRamanujan这并没有回答我们关于编码的问题。
int red = line.charAt(j) & 0xff;
int green = line.charAt(j + 1) & 0xff;
int blue = line.charAt(j + 2) & 0xff;
int ARGB = 0xff000000 | red << 16 | green << 8 | blue:
int alpha = line.charAt(j) & 0xff;
int red = line.charAt(j + 1) & 0xff;
int green = line.charAt(j + 2) & 0xff;
int blue = line.charAt(j + 3) & 0xff;
int ARGB = alpha << 24 | red << 16 | green << 8 | blue: