Asp.net İle Dinamik Thumbnail Oluşturma
SanalData’yı Google’da tercih edilen kaynak olarak ekleyinMerhaba arkadaşlar, bugünkü kod kırıntılarında sizlere dinamik olarak thumbnail oluşturma kod pıtırcıklarını paylaşıcam.
Yok illa ben kodları görücem diyorsanız kaputun altı aşağıdaki gibidir.
Dosya isminin thumbnail.aspx olduğunu varsayarsak
|
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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
using System; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.IO; using System.Web; using System.Web.UI; public partial class thumbnail : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string image = Request.QueryString["Image"]; if (string.IsNullOrEmpty(image)) { this.ErrorResult(); return; } string sSize = Request.QueryString["Size"]; int size = 313; if (!string.IsNullOrEmpty(sSize) && !int.TryParse(sSize, out size)) { this.ErrorResult(); return; } string path; if (image.IndexOf("sliders", StringComparison.OrdinalIgnoreCase) == -1) { path = Server.MapPath("/uploads/eticaret/" + image); } else { path = Server.MapPath("/uploads/slider/" + image.Split('_')[1]); } if (!File.Exists(path)) { this.ErrorResult(); return; } Bitmap bmp; try { bmp = CreateThumbnails(path, size); } catch { this.ErrorResult(); return; } if (bmp == null) { this.ErrorResult(); return; } string imagePath = Server.MapPath("/uploads/" + size + "_" + image); Response.ContentType = "image/jpeg"; try { if (File.Exists(imagePath)) { Response.WriteFile(imagePath); } else { using (MemoryStream ms = new MemoryStream()) { bmp.Save(ms, ImageFormat.Jpeg); ms.WriteTo(Response.OutputStream); bmp.Save(imagePath, ImageFormat.Jpeg); } } } catch { this.ErrorResult(); } finally { bmp.Dispose(); } } private void ErrorResult() { Response.Clear(); Response.StatusCode = 404; Response.End(); } public static Bitmap CreateThumbnails(string lcFilename, int targetSize) { Bitmap bmpOut = new Bitmap(targetSize, targetSize); try { using (Bitmap originalBmp = new Bitmap(lcFilename)) { float ratio = Math.Min((float)targetSize / originalBmp.Width, (float)targetSize / originalBmp.Height); int newWidth = (int)(originalBmp.Width * ratio); int newHeight = (int)(originalBmp.Height * ratio); using (Graphics g = Graphics.FromImage(bmpOut)) { g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.Clear(Color.White); int posX = (targetSize - newWidth) / 2; int posY = (targetSize - newHeight) / 2; g.DrawImage(originalBmp, posX, posY, newWidth, newHeight); } } } catch { bmpOut.Dispose(); return null; } return bmpOut; } } |
Kullanımı ise aşağıdaki gibidir
http://www.domain.com/thumbnail.aspx?image=resim_yolu.jpg&size=resim_boyut
Herkese bol debuglu bol queryli günler 🙂
Günün zaman çizelgesi
Haber eklenme saatine göre sıralanır.
- Bugün
- K2’nin İlk Kış Zirvesini Anlatan Belgesel Apple TV’de
- Kaliforniya’da robotaksilere acil durum engeli için ceza
- Apple’ın metin bildirimli akıllı ev kamerası iddiası
- Apple, iPhone Duo için yeni Shot on iPhone kampanyasını başlattı
- Apple, Brüksel’de teknoloji lobisinin en aktif şirketlerinden
- Apple gündeminde iPhone Duo, AirPods 5 ve mesajla sipariş
- Armadin, yapay zekâ güvenliği için 255,5 milyon dolar topladı
- Lyft, sürücü sınıflandırması davasında 272,5 milyon dolar ödeyecek
- GrayKey, iPhone’un 72 saatlik güvenlik kilidini aşabilir
- Grok’un Maduro operasyonunu Trump’a önerdiği iddia edildi
- GTA 6’nın hava sistemi yerel yağış ve kasırgalar sunacak
- Apple Arcade kataloğuna beş yeni oyun eklendi
- Dün
- Audible, yapay zekâ destekli interaktif hikâyeleri duyurdu
- Kena: Scars of Kosmora’nın çıkışı 2027’ye ertelendi