Qual è il modo migliore per ridimensionare un'immagine caricata in MVC 6? Mi piacerebbe memorizzare più varianti di un'immagine (come piccole, grandi, ecc.) Per poter scegliere quali visualizzare in seguito.Ridimensiona l'immagine caricata in MVC 6
Ecco il mio codice per l'azione.
[HttpPost]
public async Task<IActionResult> UploadPhoto()
{
if (Request.Form.Files.Count != 1)
return new HttpStatusCodeResult((int)HttpStatusCode.BadRequest);
IFormFile file = Request.Form.Files[0];
// calculate hash
var sha = System.Security.Cryptography.SHA256.Create();
byte[] hash = sha.ComputeHash(file.OpenReadStream());
// calculate name and patch where to store the file
string extention = ExtentionFromContentType(file.ContentType);
if (String.IsNullOrEmpty(extention))
return HttpBadRequest("File type not supported");
string name = WebEncoders.Base64UrlEncode(hash) + extention;
string path = "uploads/photo/" + name;
// save the file
await file.SaveAsAsync(this.HostingEnvironment.MapPath(path));
}
Grazie! Esattamente quello di cui ho bisogno! –
@Phill Ottimo collegamento, grazie, l'unica cosa che ho trovato per l'immagine vext. Ma la "nuova dimensione" è la parte System.Drawing? – Alex
@voo il Nuget corrente richiede ancora System.Drawing, ma l'API sta cambiando per V2 per eliminare quel vincolo. https://github.com/JimBobSquarePants/ImageProcessor#api-changes – Phill