Размеры картинки

Данилов Даниил
Дата: 30.03.2010 00:07:16
Условия такие: загружается картинка на сервер в ПАПКУ(!)(стандартный код из MSDN). В БД пихать не хочу, точнее просто не умею и след. слегка побаиваюсь) Нужно эту картинку ужать в размерах так, чтоб она помещалась в определённую длину (пропорции!!!). И сделать это надо без width (почему то на эксплорере не работает, на файрфоксе - со сбоями, на опере - вродь пашет, но тож странно). Да и грузится медленно. Так что нужно именно реально уменьшить картинку. Подскажите код, плиз. Уровень знаний по С# и ASP.net малый, но желательно получить просто пример реализации с комментариями действий, чтоб если что, смог потом повторить: не люблю копи-паст) Заранее спасибо)


-----------------------------------
Подайте на пропитание коды, кто сколько сможет. Только доходчивые!
Bobrov
Дата: 30.03.2010 09:45:38
я использую Bitmap, в msdn вот есть пример, можно под себя переделать

http://msdn.microsoft.com/ru-ru/library/system.drawing.bitmap.aspx
Яростный Меч
Дата: 30.03.2010 09:48:09
Мегапризрак
Дата: 30.03.2010 13:11:18
Пишем функцию:
 Public Function ScaleByPercent(ByVal imgPhoto As Image, ByVal Width As Integer, ByVal Height As Integer) As Image
        Dim sourceWidth As Integer = imgPhoto.Width
        Dim sourceHeight As Integer = imgPhoto.Height
        Dim sourceX As Integer = 0
        Dim sourceY As Integer = 0
        Dim destX As Integer = 0
        Dim destY As Integer = 0

        Dim nPercent As Single = 0
        Dim nPercentW As Single = 0
        Dim nPercentH As Single = 0

        nPercentW = (CSng(Width) / CSng(sourceWidth))
        nPercentH = (CSng(Height) / CSng(sourceHeight))
        If nPercentH < nPercentW Then
            nPercent = nPercentH
        Else
            nPercent = nPercentW
        End If
        Dim destWidth As Integer = CInt((sourceWidth * nPercent))
        Dim destHeight As Integer = CInt((sourceHeight * nPercent))
        Dim bmPhoto As New Bitmap(destWidth, destHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb)
        bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution)
        Dim grPhoto As Graphics = Graphics.FromImage(bmPhoto)
        grPhoto.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
        grPhoto.DrawImage(imgPhoto, New Rectangle(destX, destY, destWidth, destHeight), New Rectangle(sourceX, sourceY, sourceWidth, sourceHeight), GraphicsUnit.Pixel)
        grPhoto.Dispose()
        Return (bmPhoto)
    End Function

Использование:
Dim kartinka As Bitmap
        kartinka = ScaleByPercent(Image.FromFile("Путь к файлу исходной картинки"), 100, 200)
        kartinka.Save("Путь к файлу новой картинки")

Где 100 максимальная ширина картинки, 200 максимальная высота картинки
Данилов Даниил
Дата: 01.04.2010 22:54:59
Всем большое спасибо за ответы. Они реально интересны и, вроде бы, понятны. Просто я уже сам откопал какой-то код. Ещё раз спасибо
-----------------------------------
Подайте на пропитание коды, кдо сколько сможет. Только доходчивые!