在控制台应用程序中将位图的Java代码转换为C#代码



我正在尝试将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

最新更新