데이터베이스 Blob에서 이미지를 효과적으로 저장하고 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-16 18:28:02
원래의
820명이 탐색했습니다.

How to Effectively Store and Retrieve Images from a Database Blob?

데이터베이스 Blob에 이미지를 저장하고 표시하기 위해 검색

문제

데이터베이스에서 이미지를 저장하고 검색하는 것은 프로그래밍의 일반적인 작업입니다. 간단해 보일 수도 있지만 코드가 올바르게 구현되지 않으면 문제가 발생할 수 있습니다. 이 경우 사용자는 이미지를 데이터베이스에 저장하고 Picturebox 컨트롤에 표시할 때 문제가 발생했습니다.

해결책

문제를 해결하려면 사용자의 코드를 검사하고 잠재적인 문제를 식별해 보겠습니다.

다음에 저장 데이터베이스:

ImageStream = New System.IO.MemoryStream
PbPicture.Image.Save(ImageStream, System.Drawing.Imaging.ImageFormat.Jpeg)
ReDim rawdata(CInt(ImageStream.Length - 1))
로그인 후 복사

코드가 올바른 크기로 원시 데이터를 초기화하지 못했습니다. 이미지 바이트를 올바르게 저장하려면 이미지 스트림의 길이와 일치하도록 크기를 다시 조정해야 합니다.

ReDim rawdata(CInt(ImageStream.Length))
로그인 후 복사

데이터베이스에서 검색 중:

Dim ad As New System.IO.MemoryStream(100000)
Dim im As Image = Image.FromStream(ad) * "error occurs here" (see below)
로그인 후 복사

오류 광고 메모리 스트림의 위치가 올바르지 않거나 용량이 부족하기 때문에 발생합니다. 다음 코드는 이 문제를 해결합니다.

ad.Position = 0
Dim im As Image = Image.FromStream(ad)
로그인 후 복사

데이터베이스에 이미지를 저장하기 위한 작업 코드

Dim filename As String = txtName.Text + ".jpg"
Dim FileSize As UInt32

conn.Close()

Dim mstream As New System.IO.MemoryStream()
PbPicture.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim arrImage() As Byte = mstream.GetBuffer()

FileSize = mstream.Length
Dim sqlcmd As New MySqlCommand
Dim sql As String
mstream.Close()

sql = "insert into [your table]  (picture, filename, filesize) 
                               VALUES(@File, @FileName, @FileSize)"

Try
    conn.Open()
    With sqlcmd
        .CommandText = sql
        .Connection = conn
        .Parameters.AddWithValue("@FileName", filename)
        .Parameters.AddWithValue("@FileSize", FileSize)
        .Parameters.AddWithValue("@File", arrImage)

        .ExecuteNonQuery()
    End With
Catch ex As Exception
    MsgBox(ex.Message)
Finally
    conn.Close()
End Try
로그인 후 복사

데이터베이스에서 이미지를 검색하기 위한 작업 코드

Dim adapter As New MySqlDataAdapter
adapter.SelectCommand = Cmd

data = New DataTable

adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)
commandbuild = New MySqlCommandBuilder(adapter)
adapter.Fill(data)

Dim lb() As Byte = data.Rows(0).Item("picture")
Dim lstr As New System.IO.MemoryStream(lb)
PbPicture.Image = Image.FromStream(lstr)
PbPicture.SizeMode = PictureBoxSizeMode.StretchImage
lstr.Close()
로그인 후 복사

위 내용은 데이터베이스 Blob에서 이미지를 효과적으로 저장하고 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿