Asp.net ile resim boyutlandırma ve kaydetme
14 Eylül 2019 / 10:07
Burak
Merhaba arkadaşlar,
Asp.net bir resmi farklı boyutlarda revize edit tekrar kayıt etmek isterseniz aşağıdaki kodları kullanabilirsiniz.
Öncelikle kütüphanemizi yükleyelim;
1 2 3 4 5 6 7 8 9 10 11 12 |
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Configuration; using MySql.Data.MySqlClient; using System.Drawing; using System.Net; using System.IO; using System.Drawing.Imaging; |
Daha sonra işlem yapıcak kodlarımızı ekleyelim
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
int Donusturme = 227; //resmin yeni boyutu WebClient wc = new WebClient(); byte[] originalData = wc.DownloadData(Server.MapPath("resmin adresi örnek /uploads/images")); MemoryStream stream = new MemoryStream(originalData); Bitmap bmp = new Bitmap(stream); using (Bitmap OrjinalResim = bmp) { double ResYukseklik = OrjinalResim.Height; double ResGenislik = OrjinalResim.Width; double oran = 0; if (ResGenislik >= Donusturme) { oran = ResGenislik / ResYukseklik; ResGenislik = Donusturme; ResYukseklik = Donusturme / oran; Size yenidegerler = new Size(227, 227);//Oluşan yeni değerlerimizi belirtiyoruz Bitmap yeniresim = new Bitmap(OrjinalResim, yenidegerler);// ve elimizde artık yeniden boyutlandırdığımız resim var yeniresim.Save(HttpContext.Current.Server.MapPath("resmin yeni halinin kaydedilecegi yer örnek uploads/223")); yeniresim.Dispose(); OrjinalResim.Dispose(); bmp.Dispose(); } } |
Eğer resimin yüksekliğini sabit ama genişliğini otomatik olarak hesaplamasını istiyorsanız ise aşağıdaki kodları kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
int Donusturme = 996; //resmin yeni boyutu try { WebClient wc = new WebClient(); byte[] originalData = wc.DownloadData(Server.MapPath("/uploads/siparis/" + fi.Name)); MemoryStream stream = new MemoryStream(originalData); Bitmap bmp = new Bitmap(stream); using (Bitmap OrjinalResim = bmp) { double ResYukseklik = OrjinalResim.Height; double ResGenislik = OrjinalResim.Width; double oran = 0; if (ResGenislik >= Donusturme) { oran = ResGenislik / ResYukseklik; ResGenislik = Donusturme; ResYukseklik = Donusturme / oran; Size yenidegerler = new Size(Convert.ToInt32(ResGenislik), Convert.ToInt32(ResYukseklik)); Bitmap yeniresim = new Bitmap(OrjinalResim, yenidegerler); yeniresim.RotateFlip(RotateFlipType.Rotate90FlipNone); yeniresim.Save(Server.MapPath("/uploads/siparis3/" + fi.Name)); yeniresim.Dispose(); OrjinalResim.Dispose(); bmp.Dispose(); } } Response.Write(fi.Name + " boyutlandırıldı <br>"); } catch (Exception exp) { Response.Write(fi.Name + " hata :" + exp.Message + "<br>"); } |
Eğer resimin boyutlandırdıktan sonra kalitesini düşürmek isterseniz ise aşağıdaki kodları kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
private static ImageCodecInfo TipBilgisi(String mimeType) { int j; ImageCodecInfo[] encoders; encoders = ImageCodecInfo.GetImageEncoders(); for (j = 0; j < encoders.Length; ++j) { if (encoders[j].MimeType == mimeType) return encoders[j]; } return null; } protected void Page_Load(object sender, EventArgs e) { Bitmap myBitmap; ImageCodecInfo myImageCodecInfo; System.Drawing.Imaging.Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; DirectoryInfo di = new DirectoryInfo(Server.MapPath("/uploads/siparis")); FileInfo[] rgFiles = di.GetFiles(); foreach (FileInfo fi in rgFiles) { int Donusturme = 996; //resmin yeni boyutu try { WebClient wc = new WebClient(); byte[] originalData = wc.DownloadData(Server.MapPath("/uploads/siparis/" + fi.Name)); MemoryStream stream = new MemoryStream(originalData); Bitmap bmp = new Bitmap(stream); using (Bitmap OrjinalResim = bmp) { double ResYukseklik = OrjinalResim.Height; double ResGenislik = OrjinalResim.Width; double oran = 0; if (ResGenislik >= Donusturme) { oran = ResGenislik / ResYukseklik; ResGenislik = Donusturme; ResYukseklik = Donusturme / oran; Size yenidegerler = new Size(Convert.ToInt32(ResGenislik), Convert.ToInt32(ResYukseklik)); Bitmap yeniresim = new Bitmap(OrjinalResim, yenidegerler); yeniresim.RotateFlip(RotateFlipType.Rotate90FlipNone); myBitmap = new Bitmap(yeniresim); myImageCodecInfo = TipBilgisi("image/jpeg"); myEncoder = System.Drawing.Imaging.Encoder.Quality; myEncoderParameters = new EncoderParameters(1); // 1L - 100L arasında bir değer ile kapasite ayarını gerçekleştiriyoruz. myEncoderParameter = new EncoderParameter(myEncoder, 70L); myEncoderParameters.Param[0] = myEncoderParameter; yeniresim.Save(Server.MapPath("/uploads/siparis3/" + fi.Name), myImageCodecInfo, myEncoderParameters); yeniresim.Dispose(); OrjinalResim.Dispose(); bmp.Dispose(); } } Response.Write(fi.Name + " boyutlandırıldı <br>"); } catch (Exception exp) { Response.Write(fi.Name + " hata :" + exp.Message + "<br>"); } break; } } |
Hepsi bu kadar bir sonraki yazıda görüşünceye kadar bol hatasız kodlar…
Etiketler: asp.net ile resim boyutunu düşürme, Asp.net İle resim kalitesini düşürme, C# ile resimi yeniden boyutlandırma
Bu Yazılarıda Okuyabilirsiniz...
Bir cevap yazın