Upload Image, and Create a thumb of the same Image Asp.Net Mvc?

1

I have a class named image, where I have two attributes, UrlDaImagem , and UrlDoThumb , I can save the image, normal only I would like to create a Thumb for that same image, without having to make a new upload.

Class:

public class Imagem
{
    [Key]
    public int ImagemId { get; set; }
    public string UrlDaImagem { get; set; }
    public string Thumb { get; set; }
}

Controller:

public ActionResult Create(Produto produto, 
                           List<int> IdCategoria, 
                           HttpPostedFileBase Arquivo)
{
    if (ModelState.IsValid)
    {
        #region Salvar Imagem
        Imagem img = new Imagem();
        string nomeDoArquivo = Path.GetFileNameWithoutExtension(Arquivo.FileName);
        string extensao = Path.GetExtension(Arquivo.FileName);
        nomeDoArquivo = nomeDoArquivo + DateTime.Now.ToString("yymmssffff") + extensao;

        img.UrlDaImagem = "~/Imagens/Produtos/" + nomeDoArquivo;
        using (var db = new Contexto())
        {
            db.ImagemDb.Add(img);
            db.SaveChanges();
            var id = img.ImagemId;
            produto.ImagemId = id;
        }
        nomeDoArquivo = Path.Combine(Server.MapPath("~/Imagens/Produtos/"),nomeDoArquivo);
        Arquivo.SaveAs(nomeDoArquivo);
        #endregion

        db.ProdutoDb.Add(produto);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

I wanted to save the original image, and to create a thumb , save the thumb , and add the thumb path to the bank

    
asked by anonymous 05.11.2018 / 19:55

1 answer

3

Create a method with the following code for the question: link

using ( Image bigImage = new Bitmap( filename ) )
{
   int height = bigImage.Height / 10;
   int width = bigImage.Width / 10;
   using ( Image smallImage = image.GetThumbnailImage( width, 
                                                       height,
                                                       new 
   Image.GetThumbnailImageAbort(Abort), IntPtr.Zero) )
   {
      smallImage.Save("thumbnail.jpg", ImageFormat.Jpeg);
   }
}

where filename is the file saved to disk.

References:

06.11.2018 / 01:30