Just nu i M3-nätverket
Gå till innehåll
Phenomen

Skala ner bilden C# ASP.NET

Rekommendera Poster

Phenomen

Jag använder AsyncFileUpload. Användaren får då ladda upp flera bilder.

 

Så här ser koden

 

    
protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
   {
       if (!AsyncFileUpload1.HasFile) return;
       string GuidFileName = Helpish.GenerateGuidFileName(Helpish.GetFileExtension(e.FileName));
       string fullpath = Helpish.GetImagesFolderPath() + GuidFileName;

       AsyncFileUpload1.SaveAs(fullpath)

........
.....

;

Jag vill inte skrämma bort användaren genom client/server-side validering.

 

Jag vill helt enkelt.

 

If (fileSize > 1,5MB)

ScaleThisShitDown(fullpath);

 

 

Tips!?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Phenomen

   public static System.Drawing.Image ScaleImage(System.Drawing.Image image, int maxHeight)
   {
       var ratio = (double)maxHeight / image.Height;
       var newWidth = (int)(image.Width * ratio);
       var newHeight = (int)(image.Height * ratio);
       var newImage = new System.Drawing.Bitmap(newWidth, newHeight);
       using (var g = System.Drawing.Graphics.FromImage(newImage))
       {
           g.DrawImage(image, 0, 0, newWidth, newHeight);
       }
       return newImage;
   }

 

Bilderna blir betydligt mindre. Testade på en bild som är 2mb,

ScaleImage(Img, 1000)

Storleken på den nya bilden blev 200kb

Redigerad av Phenomen

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Jonas__B

med e.filesize får du reda på filstorleken. Är den större än vad du vill, anropa ovan föreslagna metod.

Dock måste du först öppna filen, kontrollera att det är en bild och SEDAN anropa metoden, men att skicka in det som ett bildobjekt (dvs även öppna som ett bildobjekt efter att du vet att det är en bild).

Redigerad av Jonas__B

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...