1

文件编码有问题。此代码基本上将位图文件保存到 android 库中。

Java.IO.File MyDirectory = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), "MyDirectory");            
Java.IO.File MyFile= new Java.IO.File(MyDirectory , String.Format("Photo{0}.jpg", Guid.NewGuid()));

Bitmap photo;
Bundle extras = data.Extras;
photo = (Bitmap)extras.Get("data")

如何将照片(位图)保存到 MyFolder android 画廊?我试过这个来保存照片:

Java.IO.FileOutputStream outFile = new Java.IO.FileOutputStream(MyFile);
photo.Compress(Bitmap.CompressFormat.Png, 100, outFile);

我收到的错误是照片压缩时..

 error: Cannot convert from Java.IO.FileOutputStream to System.IO.Stream.

对不起,我是文件编码的新手。任何帮助或解决方案表示赞赏。

4

3 回答 3

1

这应该工作

 var file = new FileStream(fname, FileMode.Create, FileAccess.Write, FileShare.None);
 photo.Compress(Bitmap.CompressFormat.Jpeg, 85, file);
于 2013-11-05T09:37:30.217 回答
1

这是我的代码。

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

public static void saveBitmap(Context context, Bitmap bitmap) {
        String env = Environment.getExternalStorageDirectory().getPath();
        String path = env + "/test.png";
        try {
            File f = new File(path);

            FileOutputStream fileOut = new FileOutputStream(f);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOut);
            try {
                fileOut.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            bitmap.recycle();

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
于 2013-09-18T08:13:31.560 回答
0

我使用替代方法来压缩我的位图(使用 MemoryStream),这是我的代码。

using(Bitmap bitmap = BitmapFactory.DecodeFile(myFileString))
{
    MemoryStream stream = new MemoryStream();
    bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, stream);
    myWebService.functionSave(stream.ToArray());
}

//myWebservice function parameter.
functionSave(byte[] fileStream)
{
    //... save your bitmap code using byte[]
}
于 2014-09-23T02:57:49.480 回答