![](/img/trans.png)
[英]How to I display an image from my Azure Blob Storage Account in my ASP.NET Core Application?
[英]How do I save my resized image to my Azure Blob Storage in my ASP.NET Core Application?
在将图像上传到 Azure 之前,我正在使用ImageSharp
库重新缩放我的图像,应用程序在到达UploadBlob
操作时挂起且没有错误,我认为是 stream 导致它。 上传图像时,从图像 stream 收集信息,我创建一个空MemoryStream
,使用ImageSharp
调整图像大小,用我新缩放的图像填充MemoryStream
并尝试将该MemoryStream
上传到 Azure 我不认为它喜欢它就挂在那里。
MemoryStream 是在这种情况下使用的正确东西还是其他东西?
汽车控制器.cs
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(Car car)
{
// Define the cancellation token.
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
if (ModelState.IsValid)
{
//Access the car record
_carService.InsertCar(car);
//Get the newly created ID
int id = car.Id;
//Give it a name with some virtual directories within the container
string fileName = "car/" + id + "/car-image.jpg";
string strContainerName = "uploads";
//I create a memory stream ready for the rescaled image, not sure this is right.
Stream outStream = new MemoryStream();
//Access my storage account
BlobServiceClient blobServiceClient = new BlobServiceClient(accessKey);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(strContainerName);
//Open the image read stream
var carImage = car.ImageFile.OpenReadStream();
//Rescale the image, save as jpeg.
using (Image image = Image.Load(carImage))
{
int width = 250;
int height = 0;
image.Mutate(x => x.Resize(width, height));
image.SaveAsJpeg(outStream);
}
var blobs = containerClient.UploadBlob(fileName, outStream);
return RedirectToAction(nameof(Index));
}
return View(car);
}
它与 ImageSharp 库没有任何关系。
保存后,您需要重置outStream
position。 BlobContainerClient
正在尝试从 stream 的末尾读取。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.