Saat mengembangkan situs web, menghasilkan thumbnail adalah fungsi yang sangat umum dan praktis. Di masa lalu, hal ini hanya dapat dicapai dengan bantuan komponen COM di ASP, namun sekarang dapat dengan mudah diimplementasikan di .NET menggunakan perpustakaan kelas yang kuat di ASP. kerangka kerja Kode lengkap diposting di bawah ini (Dengan catatan terperinci), lihat beberapa artikel di Internet dan konten terkait .net SDK. Keempat metode generasi digunakan untuk mengunggah gambar di Rumah Jaringan QQROOM.
///
/// Hasilkan thumbnail
///
/// Jalur gambar sumber (jalur fisik)
/// Jalur thumbnail (jalur fisik)
/// Lebar gambar mini
/// Tinggi gambar mini
/// Cara membuat thumbnail
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, lebar int, tinggi int, mode string)
{
Gambar originalImage = Gambar.FromFile(originalImagePath);
int lebar = lebar;
int tinggi = tinggi;
ke dalam x = 0;
ke dalam kamu = 0;
int ow = Gambar asli.Lebar;
int oh = Gambar asli.Tinggi;
saklar (mode)
{
case "HW"://Tentukan skala tinggi dan lebar (mungkin berubah bentuk)
merusak;
case "W"://Tentukan lebar dan tinggi secara proporsional
toheight = Gambar asli.Tinggi * lebar/Gambar asli.Lebar;
merusak;
case "H"://Tentukan tinggi dan lebar secara proporsional
towidth = Gambar asli.Lebar * tinggi/Gambar asli.Tinggi;
merusak;
case "Cut"://Tentukan tinggi dan lebar yang akan dipotong (tanpa deformasi)
if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)
{
oh = Gambar asli.Tinggi;
ow = Gambar asli.Tinggi*kelebar/ketinggian;
kamu = 0;
x = (Gambar.Lebar asli - ow)/2;
}
kalau tidak
{
ow = Gambar asli.Lebar;
oh = Gambar asli.Lebar*tinggi/lebar;
x = 0;
y = (Gambar.Tinggi asli - oh)/2;
}
merusak;
bawaan :
merusak;
}
//Buat gambar bmp baru
Bitmap gambar = new System.Drawing.Bitmap(towidth,toheight);
//Buat papan gambar baru
Grafik g = System.Drawing.Graphics.FromImage(bitmap);
//Setel metode interpolasi berkualitas tinggi
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//Setel kualitas tinggi, kecepatan rendah untuk menunjukkan kehalusan
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//Kosongkan kanvas dan isi dengan warna latar transparan
g.Clear(Color.Transparent);
//Gambar bagian tertentu dari gambar asli pada posisi dan ukuran yang ditentukan
g.DrawImage(Gambar asli, Persegi Panjang baru(0, 0, lebar, tinggi),
Persegi Panjang baru(x, y, ow,oh),
GraphicsUnit.Pixel);
coba
{
//Simpan thumbnail dalam format jpg
bitmap.Simpan(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch(Sistem.Pengecualian e)
{
melempar e;
}
Akhirnya
{
Gambar asli.Buang();
bitmap.Buang();
g.Buang();
}
}
Untuk metode kunci Graphics.DrawImage, lihat ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfsystemdrawinggraphicsclassdrawimagetopic11.htm
http://www.cnblogs.com/jialine/archive/2006/09/15 /505459.html