Создать функцию для создания эскизов доступных изображений в папке - PullRequest
0 голосов
/ 28 августа 2009

Я создал CMS для загрузки всех изображений в папку, используя ed все мои изображения в папку, используя

file.SaveAs(Server.MapPath("../images/") + advertID.ToString + "_" + i.ToString + fileExt)

Теперь все изображения сохранены, и я забыл, что создаю миниатюры. (

Мне нужно прочитать все изображения одновременно и создать миниатюры,

myimg = System.Drawing.Image.FromFile(imgFileName)
myimg = myimg.GetThumbnailImage(154, 94, Nothing, IntPtr.Zero)
myimg.Save(Server.MapPath("../Content/") + "Thumb_" + imgFileName, myimg.RawFormat)

Мне нужно, чтобы это работало быстро. Кажется, я не знаю, как читать эти изображения по одному.

Заранее спасибо.

1 Ответ

1 голос
/ 28 августа 2009

Слегка измененная версия this :

public void createThumbnails(string sourceDir) 
{
    //Process the list of files found in the directory. 
    string [] fileEntries = Directory.GetFiles(sourceDir);

    foreach(string fileName in fileEntries)
    {
        //Do resizing here.
        myimg = System.Drawing.Image.FromFile(fileName);
        myimg = myimg.GetThumbnailImage(154, 94, Nothing, IntPtr.Zero);
        myimg.Save(Server.MapPath("../Content/") + "Thumb_" + fileName, myimg.RawFormat);
    }
}

Называется так:

createThumbnails("C:\Path\To\Images");

* Редактировать : эквивалент VB.NET с использованием конвертер инструмент:

Public Sub createThumbnails(ByVal sourceDir As String)
    Dim fileEntries As String() = Directory.GetFiles(sourceDir)

    For Each fileName As String In fileEntries
        myimg = System.Drawing.Image.FromFile(fileName)
        myimg = myimg.GetThumbnailImage(154, 94, [Nothing], IntPtr.Zero)
        myimg.Save((Server.MapPath("../Content/") & "Thumb_") + fileName, myimg.RawFormat)
    Next
End Sub
...