Сделайте миниатюры и веб-страницу для отображения изображений в каталоге в 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. См. Пример Поиск файлов, которые соответствуют нескольким шаблонам в C# для описания метода FindFiles.

Источник: http://csharphelper.com/blog/2015/06/make-thumbnails-and-a-web-page-to-display-the-images-in-a-directory-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector