/// <summary> /// Bitmap'in yüksekliğini veya genişliğini boyutlandırır ayrıca diğer yönünü de orantılı olarak boyutlandır. /// </summary> /// <param name="istenenOlcu">type türüne göre istenen genişlik veya yükseklik ölçüsüdür.</param> /// <param name="type">Yükseklik veya genişliği ölçülendirileceğini belirler</param> /// <param name="orjBitmap">İşlenecek orjinal bitmap</param> /// <returns>Ölçülendirilmiş yeni bitmap.</returns> public Bitmap ResizeProportion(Bitmap orjBitmap, int istenenOlcu, ResizeProportionType type) { Bitmap mBitmap = null; switch (type) { case ResizeProportionType.PROPORTION_W: mBitmap = this.ResizeWithProportionW(orjBitmap, istenenOlcu); break; case ResizeProportionType.PROPORTION_H: mBitmap = this.ResizeWithProportionH(orjBitmap, istenenOlcu); break; default: break; } return(mBitmap); }
internal static string ImageResizeAndLocation(string sourfilePath, string targetVirtualDirectory, string newFileName, int newsize, ResizeProportionType pROPORTION_W, bool NoForce, bool DeleteOrjFile = true) { FileInfo fileInfo = new FileInfo(sourfilePath); if (!fileInfo.Exists) { return(null); } string fileExt = fileInfo.Extension; if (fileExt.ToLowerInvariant() == ".jpg" || fileExt.ToLowerInvariant() == ".gif" || fileExt.ToLowerInvariant() == ".png" || fileExt.ToLowerInvariant() == ".jpeg") { DirectoryInfo di = new DirectoryInfo(HttpContext.Current.Server.MapPath(targetVirtualDirectory)); if (!di.Exists) { Directory.CreateDirectory(di.FullName); } ImageResizer imgResizer = new ImageResizer(); imgResizer.JPEGCompressionLevel = 80; newFileName = string.Format("{0}{1}", newFileName, fileInfo.Extension); string returnFilePath = imgResizer.ImageFileIsle(fileInfo, targetVirtualDirectory, newFileName, newsize, null, ResizeProportionType.PROPORTION_W, NoForce); if (DeleteOrjFile) { fileInfo.Delete(); } return(returnFilePath); } else { if (fileInfo.Exists && DeleteOrjFile) { fileInfo.Delete(); } } return(null); }
/// <summary> /// Upload edilen image dosyasını (HttpPostedFile) Yükseklik veya genişliğe göre orantılı olarak boyutlandırır ve kaydeder. /// </summary> /// <param name="mFile">HttpPostedFile türünden upload edilen dosya</param> /// <param name="SaveDirectory">Kaydedilecek sanal dizin yolu Örnek:"~/images/haberler/"</param> /// <param name="FileName">Uzantı hariç dosya adı Örnek:"haberheader"</param> /// <param name="istenenOlcu">Yukseklik veya Genişlik değeri</param> /// <param name="SaveFormat">Image File format'ı null değer verilirse dosya orjinal formatı ile kaydedilir</param> /// <param name="type">Boyutlandırma nın yükseliğe veya genişliğe göremi orantılanacağını belirler</param> /// <returns>Kaydedilen dosyanın sanal yolunu verir Örnek:"~/images/haberler/haberheader.jpg"</returns> public string ImageFileIsle(FileInfo mFile, string SaveDirectory, string FileName, int istenenOlcu, ImageFormat SaveFormat, ResizeProportionType type, bool maxValue) { if (mFile.Length > 0) { FileStream fs = mFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete); Bitmap mBitmap = (Bitmap)Bitmap.FromStream(fs); fs.Close(); int orjWidth = mBitmap.Width; int orjHeight = mBitmap.Height; mBitmap.Dispose(); switch (type) { case ResizeProportionType.PROPORTION_W: if (orjWidth <= istenenOlcu && maxValue) { return(ImageFileIsle(mFile, SaveDirectory, FileName, orjWidth, SaveFormat, type)); } else { return(ImageFileIsle(mFile, SaveDirectory, FileName, istenenOlcu, SaveFormat, type)); } case ResizeProportionType.PROPORTION_H: if (orjHeight <= istenenOlcu && maxValue) { return(ImageFileIsle(mFile, SaveDirectory, FileName, orjHeight, SaveFormat, type)); } else { return(ImageFileIsle(mFile, SaveDirectory, FileName, istenenOlcu, SaveFormat, type)); } default: return(null); } } return(null); }
/// <summary> /// Upload edilen image dosyasını (HttpPostedFile) Yükseklik veya genişliğe göre orantılı olarak boyutlandırır ve kaydeder. /// </summary> /// <param name="mFile">HttpPostedFile türünden upload edilen dosya</param> /// <param name="SaveDirectory">Kaydedilecek sanal dizin yolu Örnek:"~/images/haberler/"</param> /// <param name="FileName">Uzantı hariç dosya adı Örnek:"haberheader"</param> /// <param name="istenenOlcu">Yukseklik veya Genişlik değeri</param> /// <param name="SaveFormat">Image File format'ı null değer verilirse dosya orjinal formatı ile kaydedilir</param> /// <param name="type">Boyutlandırma nın yükseliğe veya genişliğe göremi orantılanacağını belirler</param> /// <returns>Kaydedilen dosyanın sanal yolunu verir Örnek:"~/images/haberler/haberheader.jpg"</returns> public string ImageFileIsle(FileInfo mFile, string SaveDirectory, string FileName, int istenenOlcu, ImageFormat SaveFormat, ResizeProportionType type) { string fileName = null; string virtualFileName = null; if (mFile.Length > 0) { string FileExtesion = Path.GetExtension(mFile.FullName).ToLower(); ImageFormat mFormat = null; // switch (FileExtesion) { case ".jpg": case ".jpeg": mFormat = ImageFormat.Jpeg; break; case ".png": mFormat = ImageFormat.Png; break; case ".gif": mFormat = ImageFormat.Gif; break; default: break; } if (SaveFormat == null) { SaveFormat = mFormat; } else if (SaveFormat == ImageFormat.Jpeg) { FileExtesion = ".jpg"; } else if (SaveFormat == ImageFormat.Gif) { FileExtesion = ".gif"; } else if (SaveFormat == ImageFormat.Png) { FileExtesion = ".png"; } string fullDirectoryPath = HttpContext.Current.Server.MapPath(SaveDirectory); virtualFileName = SaveDirectory + Path.GetFileNameWithoutExtension(FileName) + FileExtesion; FileStream fs = mFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete); Bitmap mBitmap = (Bitmap)Bitmap.FromStream(fs); fs.Close(); fs.Dispose(); fileName = fullDirectoryPath + Path.GetFileNameWithoutExtension(FileName) + FileExtesion; Bitmap sBitmap = this.ResizeProportion(mBitmap, istenenOlcu, type); SaveFormat = SaveFormat != null ? SaveFormat : mFormat; ImageCodecInfo jgpEncoder = GetEncoder(SaveFormat); System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, this.JPEGCompressionLevel); myEncoderParameters.Param[0] = myEncoderParameter; if (File.Exists(fileName)) { File.Delete(fileName); } sBitmap.Save(fileName, jgpEncoder, myEncoderParameters); sBitmap.Dispose(); mBitmap.Dispose(); } return(virtualFileName); }
/// <summary> /// Upload edilen image dosyasını (HttpPostedFile) Yükseklik veya genişliğe göre orantılı olarak boyutlandırır ve kaydeder. /// </summary> /// <param name="mFile">HttpPostedFile türünden upload edilen dosya</param> /// <param name="SaveDirectory">Kaydedilecek sanal dizin yolu Örnek:"~/images/haberler/"</param> /// <param name="FileName">Uzantı hariç dosya adı Örnek:"haberheader"</param> /// <param name="istenenOlcu">Yukseklik veya Genişlik değeri</param> /// <param name="SaveFormat">Image File format'ı null değer verilirse dosya orjinal formatı ile kaydedilir</param> /// <param name="type">Boyutlandırma nın yükseliğe veya genişliğe göremi orantılanacağını belirler</param> /// <returns>Kaydedilen dosyanın sanal yolunu verir Örnek:"~/images/haberler/haberheader.jpg"</returns> public string ImageFileIsle(HttpPostedFile mFile, string SaveDirectory, string FileName, int istenenOlcu, ImageFormat SaveFormat, ResizeProportionType type) { string fileName = null; string virtualFileName = null; if (mFile.ContentLength > 0) { string FileExtesion = Path.GetExtension(mFile.FileName).ToLower(); ImageFormat mFormat = null; // switch (FileExtesion) { case ".jpg": case ".jpeg": mFormat = ImageFormat.Jpeg; break; case ".png": mFormat = ImageFormat.Png; break; case ".gif": mFormat = ImageFormat.Gif; break; default: break; } if (mFormat != null) { if (SaveFormat == null) { SaveFormat = mFormat; } else if (SaveFormat == ImageFormat.Jpeg) { FileExtesion = ".jpg"; } else if (SaveFormat == ImageFormat.Gif) { FileExtesion = ".gif"; } else if (SaveFormat == ImageFormat.Png) { FileExtesion = ".png"; } string fullDirectoryPath = HttpContext.Current.Server.MapPath(SaveDirectory); virtualFileName = SaveDirectory + FileName + FileExtesion; Bitmap mBitmap = ReadBitmapFromPostedFile(mFile); fileName = fullDirectoryPath + FileName + FileExtesion; Bitmap sBitmap = this.ResizeProportion(mBitmap, istenenOlcu, type); sBitmap.Save(fileName, SaveFormat != null ? SaveFormat : mFormat); sBitmap.Dispose(); mBitmap.Dispose(); } } return(virtualFileName); }
/// <summary> /// Upload edilen image dosyasını (HttpPostedFile) Yükseklik veya genişliğe göre orantılı olarak boyutlandırır ve kaydeder. /// </summary> /// <param name="mFile">HttpPostedFile türünden upload edilen dosya</param> /// <param name="SaveDirectory">Kaydedilecek sanal dizin yolu Örnek:"~/images/haberler/"</param> /// <param name="FileName">Uzantı hariç dosya adı Örnek:"haberheader"</param> /// <param name="istenenOlcu">Yukseklik veya Genişlik değeri</param> /// <param name="SaveFormat">Image File format'ı null değer verilirse dosya orjinal formatı ile kaydedilir</param> /// <param name="type">Boyutlandırma nın yükseliğe veya genişliğe göremi orantılanacağını belirler</param> /// <returns>Kaydedilen dosyanın sanal yolunu verir Örnek:"~/images/haberler/haberheader.jpg"</returns> public string ImageFileIsle(HttpPostedFile mFile, string SaveDirectory, string FileName, int istenenOlcu, ImageFormat SaveFormat, ResizeProportionType type, bool maxValue) { if (mFile.ContentLength > 0) { Bitmap mBitmap = ReadBitmapFromPostedFile(mFile); int orjWidth = mBitmap.Width; int orjHeight = mBitmap.Height; mBitmap.Dispose(); switch (type) { case ResizeProportionType.PROPORTION_W: if (orjWidth <= istenenOlcu && maxValue) { return(ImageFileIsle(mFile, SaveDirectory, FileName, orjWidth, SaveFormat, type)); } else { return(ImageFileIsle(mFile, SaveDirectory, FileName, istenenOlcu, SaveFormat, type)); } case ResizeProportionType.PROPORTION_H: if (orjHeight <= istenenOlcu && maxValue) { return(ImageFileIsle(mFile, SaveDirectory, FileName, orjHeight, SaveFormat, type)); } else { return(ImageFileIsle(mFile, SaveDirectory, FileName, istenenOlcu, SaveFormat, type)); } default: return(null); } } return(null); }
/// <summary> /// Sınıf içinden tanımlı Bitmap'in yüksekliğini veya genişliğini boyutlandırır ayrıca diğer yönünü de orantılı olarak boyutlandır. /// </summary> /// <param name="istenenOlcu">type türüne göre istenen genişlik veya yükseklik ölçüsüdür.</param> /// <param name="type">Yükseklik veya genişliği ölçülendirileceğini belirler</param> /// <returns>Ölçülendirilmiş yeni bitmap.</returns> public Bitmap ResizeProportion(int istenenOlcu, ResizeProportionType type) { return(ResizeProportion(this.Image, istenenOlcu, type)); }