Asp.net ile resim boyutlandırma ve kaydetme
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…
Günün zaman çizelgesi
Haber eklenme saatine göre sıralanır.
- Bugün
- 2028 Volvo XC40, daha küçük görünen tasarımla yenilendi
- Automattic’te yönetim kurulu değişti: Mullenweg görevde
- AirPods Pro 3 ve Anker şarj istasyonlarında fırsat
- 7-13 Eylül Haftasında Türkiye’de En Çok İzlenenler
- WhatsApp Durum Videolarına 2x İzleme Seçeneği Geliyor
- Samsung Galaxy A08’in Tasarımı ve Özellikleri Sızdırıldı
- Apple’ın Beats Markasıyla Oyun Kumandası Geliştirdiği İddiası
- Volkswagen’in verimlilik odaklı EV prototipi rekor kırdı
- Fantastical 4.2, Siri desteği ve büyük widget’larla geldi
- iMazing, iPhone verilerini yönetmek isteyenlere yüzde 20 indirim
- Superhuman, yapay zekâlı toplantı notları için Fathom’u aldı
- Formula 1 Madrid’de: Monaco’nun uzun ve gösterişsiz hâli
- Things 3.24, iOS 27 desteği ve Siri entegrasyonuyla geldi
- Yapay zekâsız müzik uygulamaları geliştiren startup 5,5 milyon dolar topladı