عند تطوير موقع ويب، يعد إنشاء الصور المصغرة وظيفة شائعة وعملية للغاية. في الماضي، لم يكن من الممكن تحقيق ذلك إلا بمساعدة مكونات COM في ASP، ولكن الآن يمكن تنفيذها بسهولة في .NET باستخدام مكتبة الفئات القوية الخاصة بـ ASP. تم نشر الكود الكامل أدناه (مع ملاحظات تفصيلية)، راجع بعض المقالات على الإنترنت والمحتوى ذي الصلة بـ .net sdk. يتم استخدام جميع طرق الإنشاء الأربعة لتحميل الصور في QQROOM Network Home.
/// <الملخص>
/// إنشاء صور مصغرة
/// </الملخص>
/// <param name="originalImagePath">مسار الصورة المصدر (المسار الفعلي)</param>
/// <param name="thumbnailPath">مسار الصورة المصغرة (المسار الفعلي)</param>
/// <param name="width">عرض الصورة المصغرة</param>
/// <param name="height">ارتفاع الصورة المصغرة</param>
/// <param name="mode">كيفية إنشاء الصور المصغرة</param>
MakeThumbnail الفراغ الثابت العام (سلسلة originalImagePath، سلسلة الصورة المصغرة، عرض int، ارتفاع int، وضع السلسلة)
{
Image originalImage = Image.FromFile(originalImagePath);
عرض كثافة العمليات = العرض؛
ارتفاع كثافة العمليات = الارتفاع؛
كثافة العمليات س = 0؛
كثافة العمليات ص = 0؛
int ow = originalImage.Width;
int oh = originalImage.Height
التبديل (الوضع)
{
الحالة "HW"://حدد مقياس الارتفاع والعرض (ربما يكون مشوهًا)
استراحة؛
الحالة "W"://حدد العرض والارتفاع بشكل متناسب
toheight = originalImage.Height * width/originalImage.Width;
استراحة؛
الحالة "H"://حدد الارتفاع والعرض بشكل متناسب
towidth = originalImage.Width * height/originalImage.Height;
استراحة؛
الحالة "قص"://حدد الارتفاع والعرض للقطع (بدون تشوه)
إذا ((مزدوج) originalImage.Width/(مزدوج) originalImage.Height> (مزدوج) إلى العرض / (مزدوج) إلى الارتفاع)
{
oh = originalImage.Height;
ow = originalImage.Height*towidth/toheight;
ص = 0;
x = (originalImage.Width - ow)/2;
}
آخر
{
ow = originalImage.Width;
oh = originalImage.Width*height/towidth;
س = 0;
y = (originalImage.Height - oh)/2;
}
استراحة؛
تقصير :
استراحة؛
}
// إنشاء صورة bmp جديدة
الصورة النقطية = new System.Drawing.Bitmap(towidth,toheight);
// إنشاء لوحة رسم جديدة
Graphics g = System.Drawing.Graphics.FromImage(bitmap);
// تعيين طريقة الاستيفاء عالية الجودة
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
// اضبط الجودة العالية والسرعة المنخفضة لإظهار السلاسة
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
// امسح اللوحة القماشية واملأها بلون خلفية شفاف
g.Clear(Color.Transparent);
// ارسم الجزء المحدد من الصورة الأصلية في الموضع والحجم المحددين
g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
مستطيل جديد (س، ص، آه، أوه)،
GraphicsUnit.Pixel
);
{
// احفظ الصورة المصغرة بتنسيق jpg
bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
قبض (System.Exception ه)
{
رمي ه.
}
أخيراً
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
للتعرف على الأسلوب الرئيسي Graphics.DrawImage، راجع ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfsystemdrawinggraphicsclassdrawimagetopic11.htm
http://www.cnblogs.com/jialine/archive/2006/09/15 /505459.أتش تي أم أل