Изменить размер картинки

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

FOREVA
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 26.07.2004 (Пн) 16:44

Изменить размер картинки

Сообщение FOREVA » 26.07.2004 (Пн) 16:46

Из буфера я картинку вытащил а дальше проблемы

Подскажите пожалуйста как из картинки 320x240 сделать 180x135 на visual basic.net
и затем сохранить на диск

mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 26.07.2004 (Пн) 23:26

Если картинка представлена в виде класса Image или его производных (Bitmap и т.п.), то сжать картьинку можно функцией
Код: Выделить всё
    Private Function ShrinkBMP(ByVal srcImg As Image, ByVal w As Integer, ByVal h As Integer) As Bitmap
        Dim dstBMP As New Bitmap(w, h)
        Dim gx As Graphics = Graphics.FromImage(dstBMP)
        gx.DrawImage(srcImg, 0, 0, w, h)
        Return dstBMP
    End Function

Первый параметр - сжимаемая картинка, второй и третий - требуемая ширина и высота, функция возвращает собствено преобразованную картинку. А сохранить можно, вызвав метод Save. Пример (загрузит картинку из C:\Src.bmp, сожмет до 185x135 и сохранит в C:\dst.bmp)
Код: Выделить всё
        Dim tmp As New Bitmap("C:\src.bmp")
        Dim tmp2 As Bitmap = ShrinkBMP(tmp, 185, 135)
        tmp2.Save("C:\dst.bmp")

FOREVA
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 26.07.2004 (Пн) 16:44

Сообщение FOREVA » 27.07.2004 (Вт) 9:06

Спасибо

И еще один вопросик можно ли впринципе сделать такую фичу
Файлик в формате mpg выбрать нужный кадр и сохранить на диск

Заранее благодарен

FOREVA
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 26.07.2004 (Пн) 16:44

Сообщение FOREVA » 27.07.2004 (Вт) 18:52

И еще

Можно ли при сохранении картинки в формате jpeg изменять качество этой картинки а то уж больно плохое качество получается сохраняемой картинки


Код: Выделить всё
If Not System.Windows.Forms.Clipboard.GetDataObject() Is Nothing Then
            Dim oDataObj As IDataObject
            oDataObj = System.Windows.Forms.Clipboard.GetDataObject()
            If oDataObj.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap) Then
                Dim oImgObj As System.Drawing.Image
                oImgObj = oDataObj.GetData(DataFormats.Bitmap, True)
                Dim tmp2 As Bitmap = ShrinkBMP(oImgObj, 180, 135)
                tmp2.Save("c:/1.jpeg",System.Drawing.Imaging.ImageFormat.Jpeg)
        End If


и размер получается около 6 кБ с ужасным качеством
Подскажите пожалуйста как менять качество
Код: Выделить всё


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList