我正在尝试将Java代码转换为c#这是Java代码
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap decodeStream = BitmapFactory.decodeStream(openInputStream, null, options);
然后我通过保存这个位图
File appDirectory= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File dest = new File(appDirectory, "yourImage.jpg");
try (FileOutputStream out = new FileOutputStream(dest)) {
decodeStream.compress(Bitmap.CompressFormat.JPEG, 100, out); // bmp is your Bitmap instance
} catch (IOException e) {
e.printStackTrace();
}
现在有人能帮我把这段代码转换成c#吗。我尝试导入Xamrine Android DLL,但没有成功。我是
据我所知,您只需要加载简单的jpg图像。这就是你的java代码所做的一切。
如果你想从流中加载jpg图像,你可以使用
Bitmap.FromStream()
例如
using (FileStream fs = new FileStream(@"Image Address.jpg", FileMode.Open, FileAccess.Read))
{
var decodeStream = Bitmap.FromStream(fs);
}
当然,你也可以在没有流的情况下打开你的图像。
var image = Bitmap.FromFile(@"Image Address.jpg");
所以你的代码会像这个
File appDirectory= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File dest = new File(appDirectory, "yourImage.jpg");
var image = Bitmap.FromFile(dest.FullName);
不能开箱即用地访问位图类。
对于点网核心安装包System.Drawing.Common.
对于点网框架,添加对System.Drawing.的引用
对于Xamarin来说,看看这个答案https://stackoverflow.com/a/34869330/5964792