0

これは、このリンクから取得したコードです

ユーザーに写真をアップロードしてからサイズを変更してもらいたい........

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

前もって感謝します!

編集 ファイルアップロードコントロールから画像を取得する必要があります!

4

2 に答える 2

0

次のようなストリームオブジェクトを渡すことができます。

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

ResizeFromStream("~Pics", 200, fs)

したがって、コードはファイル'file.jpg'に対してIOを実行します。これは非常に大まかな例ですが、Jon Skeetが尋ねたように、画像がどこから来ているかは重要です。私の例は単純な「始めましょう」タイプです。

于 2009-06-26T12:11:01.390 に答える
0

FileUpload.FileContentは、ファイルコンテンツのストリームを取得します。

于 2009-07-01T12:35:48.923 に答える