Изменение размера моего изображения при загрузке не работает - каким должен быть мой буфер? - PullRequest
0 голосов
/ 26 июня 2009

Это код, который я получил от Эта ссылка

Я хочу, чтобы пользователь загрузил картинку, а затем изменил ее размер .............

Public Sub ResizeFromStream(ByVal ImageSavePath As String, ByVal MaxSideSize As Integer, ByVal Buffer As System.IO.Stream)

    Dim intNewWidth As Integer
    Dim intNewHeight As Integer
    Dim imgInput As System.Drawing.Image = System.Drawing.Image.FromStream(Buffer)


    'Determine image format
    Dim fmtImageFormat As ImageFormat = imgInput.RawFormat

    'get image original width and height
    Dim intOldWidth As Integer = imgInput.Width
    Dim intOldHeight As Integer = imgInput.Height

    'determine if landscape or portrait
    Dim intMaxSide As Integer

    If (intOldWidth >= intOldHeight) Then
        intMaxSide = intOldWidth
    Else
        intMaxSide = intOldHeight
    End If

    If (intMaxSide > MaxSideSize) Then
        'set new width and height
        Dim dblCoef As Double = MaxSideSize / CDbl(intMaxSide)

        intNewWidth = Convert.ToInt32(dblCoef * intOldWidth)
        intNewHeight = Convert.ToInt32(dblCoef * intOldHeight)

    Else

        intNewWidth = intOldWidth
        intNewHeight = intOldHeight
    End If
    'create new bitmap
    Dim bmpResized As Drawing.Bitmap = New Drawing.Bitmap(imgInput, intNewWidth, intNewHeight)

    'save bitmap to disk
    bmpResized.Save(ImageSavePath, fmtImageFormat)

    'release used resources
    imgInput.Dispose()
    bmpResized.Dispose()
    Buffer.Close()

End Sub

Теперь, когда я нажимаю на кнопку «Отправить», он должен выполнить мой код, но я не уверен, каким должен быть ввод для поля Буфер?

Protected Sub btnUpload_Click() Handles btnUpload.Click

     ResizeFromStream("~Pics", 200, ??????????)

End Sub

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

Редактировать Мне нужно получить мое изображение из элемента управления выгрузкой файлов!

Ответы [ 2 ]

0 голосов
/ 01 июля 2009

FileUpload.FileContent получает поток для содержимого файла.

0 голосов
/ 26 июня 2009

Вы можете передать объект потока следующим образом:

Dim fs As New FileStream("C:\file.jpg", FileMode.Open)

ResizeFromStream("~Pics", 200, fs)

Таким образом, код будет выполнять ввод-вывод для файла 'file.jpg'. Это очень грубый пример, но, как спросил Джон Скит, местоположение источника изображения имеет значение. Мой пример - просто «начни».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...