c# net core 3.1 razor pages 如何使用图像 class
c# net core 3.1 razor pages how to use image class
这是我所拥有的:
一位客户希望我将动态图像添加到视图中。该图像是 google 的卫星视图。我已经设法导航 google API 以获得工作 url: https://maps.googleapis.com/maps/api/staticmap?size=400x400&markers=color:red|lat,lng¢er=lat,lng&zoom=18&maptype=roadmap&key=API-KEY
这将呈现一个图像,其中包含所有需要的标记和 region/zoom/bounding...客户想要的。
我需要什么:
我可以将它发送到
标记客户端中的 src 属性,但是,这意味着 API-KEY 也会以客户端结束,这是个坏主意。我想要做的是 'download' 在 OnGet 方法中将图像发送到服务器,然后将其转换为 base64 并将该十六进制作为图像标记的 src 属性。要做到这一点,我需要能够使用图像 class,但我没有找到任何与成像(图像、位图...)相关的 class 的运气。想知道我应该看哪里?
提前致谢。
试试这个 Nuget 包 System.Drawing.Common。它包含 类,如 System.Drawing.Image
和 System.Drawing.Bitmap
,类似于旧的 .NET Framework 类。
我将它用于各种图像处理,发现它运行良好 - 并且跨平台运行。
正如@bfren 上面所说,使用 System.Drawing.Common
包包含了我成像所需的一切,但是,我将 post 我对它如何工作的完整回答:
using System.Drawing;
...
...
...
WebClient client = new WebClient();
Stream stream = client.OpenRead(imageUrl.ToString());
Bitmap bitmap = new Bitmap(stream);
MemoryStream imgStream = new MemoryStream();
bitmap.Save(imgStream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] imageBytes = imgStream.ToArray();
return Convert.ToBase64String(imageBytes);
注意:这非常有效,但请记住将其放在 ajax 调用中,图片可能很大。
这是我所拥有的: 一位客户希望我将动态图像添加到视图中。该图像是 google 的卫星视图。我已经设法导航 google API 以获得工作 url: https://maps.googleapis.com/maps/api/staticmap?size=400x400&markers=color:red|lat,lng¢er=lat,lng&zoom=18&maptype=roadmap&key=API-KEY
这将呈现一个图像,其中包含所有需要的标记和 region/zoom/bounding...客户想要的。
我需要什么:
我可以将它发送到 标记客户端中的 src 属性,但是,这意味着 API-KEY 也会以客户端结束,这是个坏主意。我想要做的是 'download' 在 OnGet 方法中将图像发送到服务器,然后将其转换为 base64 并将该十六进制作为图像标记的 src 属性。要做到这一点,我需要能够使用图像 class,但我没有找到任何与成像(图像、位图...)相关的 class 的运气。想知道我应该看哪里?
提前致谢。
试试这个 Nuget 包 System.Drawing.Common。它包含 类,如 System.Drawing.Image
和 System.Drawing.Bitmap
,类似于旧的 .NET Framework 类。
我将它用于各种图像处理,发现它运行良好 - 并且跨平台运行。
正如@bfren 上面所说,使用 System.Drawing.Common
包包含了我成像所需的一切,但是,我将 post 我对它如何工作的完整回答:
using System.Drawing;
...
...
...
WebClient client = new WebClient();
Stream stream = client.OpenRead(imageUrl.ToString());
Bitmap bitmap = new Bitmap(stream);
MemoryStream imgStream = new MemoryStream();
bitmap.Save(imgStream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] imageBytes = imgStream.ToArray();
return Convert.ToBase64String(imageBytes);
注意:这非常有效,但请记住将其放在 ajax 调用中,图片可能很大。