Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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 编码图像文件_Java_Android_Image - Fatal编程技术网

Java 编码图像文件

Java 编码图像文件,java,android,image,Java,Android,Image,我有一个颜色r,g和b值的整数数组。我想把它们编码成一个图像文件。android中有没有一种简单的方法可以将这些数据写入图像?另外,我应该使用哪种图像格式,png?有用于读取和写入图像的纯java实现: 可能有些会在android开箱即用中使用int数组创建位图,如下所示: 然后用以下方法写出: 如果要保存文件,可以调用以获取外部存储上的文件夹,在该文件夹中保存文件。您可以使用get获取路径,例如: 您需要在AndroidManifest.xml中定义的权限才能写入外部存储上的文件。我相信An

我有一个颜色r,g和b值的整数数组。我想把它们编码成一个图像文件。android中有没有一种简单的方法可以将这些数据写入图像?另外,我应该使用哪种图像格式,png?

有用于读取和写入图像的纯java实现:


可能有些会在android开箱即用中使用int数组创建位图,如下所示:

然后用以下方法写出:

如果要保存文件,可以调用以获取外部存储上的文件夹,在该文件夹中保存文件。您可以使用get获取路径,例如:


您需要在AndroidManifest.xml中定义的权限才能写入外部存储上的文件。

我相信Android中可以使用ImageIO。ImageIO API提供了读取源图像和以新文件格式写入图像的方法

要读取图像,只需为ImageIO.read()方法提供源图像的文件对象。这将返回一个BuffereImage

//Create file for the source  
File input = new File("c:/temp/image.bmp");  

//Read the file to a BufferedImage  
BufferedImage image = ImageIO.read(input);  
一旦有了BuffereImage,就可以将该图像作为PNG写入。您需要为目标图像创建一个文件对象。调用write()方法时,将类型字符串指定为“png”

使用位图格式(.bmp)可能是最简单的。显然,您需要手动设置所有必需的标题。
outStream = new FileOutputStream(filepath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
String filepath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/image.png";
//Create file for the source  
File input = new File("c:/temp/image.bmp");  

//Read the file to a BufferedImage  
BufferedImage image = ImageIO.read(input);  
//Create a file for the output  
File output = new File("c:/temp/image.png");  

//Write the image to the destination as a PNG  
ImageIO.write(image, "png", output);