Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 getData().getPixels()是否有类似的android方法?_Java_Android_Image_Bitmap_Getpixel - Fatal编程技术网

java getData().getPixels()是否有类似的android方法?

java getData().getPixels()是否有类似的android方法?,java,android,image,bitmap,getpixel,Java,Android,Image,Bitmap,Getpixel,我尝试使用以下java代码在android上读取图像数据。由于不支持ImageIO,我可以通过哪些方式使用getData().getPixels() 通过将BuffereImage更改为位图,我可以让bi.getData().getPixels()之外的所有其他代码正常工作 我可以用android库中的任何方法来替换它吗 在android位图类中: public void getPixels(int[]像素、int偏移量、int步长、int x、int y、int宽度、int高度) 此方法支持i

我尝试使用以下java代码在android上读取图像数据。由于不支持ImageIO,我可以通过哪些方式使用getData().getPixels()

通过将BuffereImage更改为位图,我可以让bi.getData().getPixels()之外的所有其他代码正常工作

我可以用android库中的任何方法来替换它吗

在android位图类中: public void getPixels(int[]像素、int偏移量、int步长、int x、int y、int宽度、int高度)

此方法支持int[],但不支持double[]。我不熟悉图像处理,它们会不同吗

多谢各位

    private double[] getImageData(String imageFileName) throws FaceRecError {
    BufferedImage bi = null;
    double[] inputFace = null;
    try{
        bi = ImageIO.read(new File(imageFileName));
    }catch(IOException ioe){
        throw new FaceRecError(ioe.getMessage());
    }
    if (bi != null){
    int imageWidth = bi.getWidth();
    int imageHeight = bi.getHeight();
    inputFace = new double[imageWidth * imageHeight];
    bi.getData().getPixels(0, 0, imageWidth, imageHeight,inputFace);
    }
    return inputFace;
}   

此代码用于获取android中位图中所有像素的颜色。此返回颜色数组

    Bitmap bitmap=BitmapFactory.decodeFile("file path");
    int height=bitmap.getHeight();
    int width=bitmap.getWidth();
    int[] pixel=new int[height*width];
    bitmap.getPixels(pixel, 0, width, 0, width, width, height);
因此,您的颜色将保存在像素阵列中
getPixels()
有许多参数可以自定义所需的像素颜色

已更新,用于将整数数组强制转换为双倍

public  double[] getDoubleNumbers(int[] numbers) 
//changed double to double[]
{double[] newNumbers = new double[numbers.length]; //changed 99 to numbers.length
for (int index = 0; index < numbers.length; index++)
newNumbers[index] = (double)numbers[index];

return newNumbers;
}
}
public double[]getDoubleNumbers(int[]numbers)
//已将double更改为double[]
{double[]newNumbers=newdouble[numbers.length];//将99更改为numbers.length
for(int index=0;index
getPixels()的位图返回像素颜色上述方法在andriod中可用。它只返回int[]。如果你想在double[]中输入int[]到double[]是的,你可以将其类型转换为双精度。简单地将整数转换为双精度会产生不同的颜色吗?我认为颜色不应该改变,因为0和0.0000表示相同的颜色。但如果可能,我建议你不要将其更改为双精度。我应该以良好的方式将整数转换为双精度吗?我正在考虑将每个整数转换为双精度数组要加倍。好的态度是什么?非常感谢。