Сделайте миниатюры и веб-страницу для отображения изображений в каталоге в C#
В этом примере выполняется поиск в каталоге и создание миниатюр для каждого из файлов изображений, которые он находит там. Он также создает веб-страницу, которая отображает миниатюры и включает ссылки на полномасштабные изображения. Он помещает все файлы (оригинальные изображения, эскизы и веб-страницы) в каталог по вашему выбору.
Следующий код показывает метод MakeWebPage, который выполняет большую часть работы.
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 |
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<string> 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( "<a href=\"" + url_prefix + image_fileinfo.Name + "\">" + "<img src=\"" + url_prefix + thumb_fileinfo.Name + "\">" + "</a>"); } } } html_file.Close(); MessageBox.S how("Processed " + files.Count + " images."); } } / MakeWebPage |
Метод начинается с создания StreamWriter, чтобы он мог писать новую веб-страницу. Затем он вызывает метод FindFiles для получения файлов в целевой директории с расширениями bmp, gif, jpg, png или tif. См. Пример