Сделайте миниатюры и веб-страницу для отображения изображений в каталоге в C#
В этом примере выполняется поиск в каталоге и создание миниатюр для каждого из файлов изображений, которые он находит там. Он также создает веб-страницу, которая отображает миниатюры и включает ссылки на полномасштабные изображения. Он помещает все файлы (оригинальные изображения, эскизы и веб-страницы) в каталог по вашему выбору.
Следующий код показывает метод MakeWebPage, который выполняет большую часть работы.
private void MakeWebPage(string input_dir, string output_dir,
string url_prefix, string web_page, int thumb_width,
int thumb_height)
{
string html_filename = output_dir + web_page;
using (StreamWriter html_file = new StreamWriter(html_filename))
{
List files =
FindFiles(input_dir,
"*.bmp;*.gif;*.jpg;*.png;*.tif", false);
foreach (string image_filename in files)
{
FileInfo image_fileinfo = new FileInfo(image_filename);
string dest_filename = output_dir + image_fileinfo.Name;
File.Copy(image_filename, dest_filename, true);
using (Bitmap bm = new Bitmap(image_filename))
{
Rectangle src_rect =
new Rectangle(0, 0, bm.Width, bm.Height);
double scale = Math.Min(
(double)thumb_width / bm.Width,
(double)thumb_height / bm.Height);
int shrunk_width = (int)(bm.Width * scale);
int shrunk_height = (int)(bm.Height * scale);
Rectangle dest_rect =
new Rectangle(0, 0, shrunk_width, shrunk_height);
using (Bitmap thumbnail =
new Bitmap(shrunk_width, shrunk_height))
{
using (Graphics gr =
Graphics.FromImage(thumbnail))
{
gr.DrawImage(bm, dest_rect, src_rect,
GraphicsUnit.Pixel);
}
string thumb_filename =
dest_filename.Substring(0,
dest_filename.Length -
image_fileinfo.Extension.Length) +
"_thumb.png";
thumbnail.Save(thumb_filename, ImageFormat.Png);
FileInfo thumb_fileinfo =
new FileInfo(thumb_filename);
html_file.WriteLine(
"" +
"
" +
"");
} } }
html_file.Close();
MessageBox.S how("Processed " + files.Count + " images.");
} } / MakeWebPage
Метод начинается с создания StreamWriter, чтобы он мог писать новую веб-страницу. Затем он вызывает метод FindFiles для получения файлов в целевой директории с расширениями bmp, gif, jpg, png или tif. См. Пример для описания метода FindFiles.
