DotImage使用教程:从数据库中读写图像

本文介绍如何使用Atalasoft DotImage库将图像数据存入及从数据库中读取,包括C#与VB.NET两种语言实现方式。通过示例代码展示了图像数据的序列化与反序列化过程。

.Net图像处理控件Atalasoft DotImage具有流媒体功能,可与ADO.NET共同使用以直接读取数据库中的图像,无需保存至临时文件。下面代码片段演示了如何利用C#和VB.NET从数据库中读写图像。

写入数据库:

C#

private void SaveToSqlDatabase(AtalaImage image)
{
SqlConnection myConnection = null;
try
{
// Save image to byte array.
byte[] imagedata = image.ToByteArray(new Atalasoft.Imaging.Codec.JpegEncoder(75));

// Create the SQL statement to add the image data.
myConnection = new SqlConnection(CONNECTION_STRING);
SqlCommand myCommand = new SqlCommand
("INSERT INTO Atalasoft_Image_Database (Caption, ImageData) VALUES ('" + txtCaption.Text + "', @Image)", myConnection);
SqlParameter myParameter = new SqlParameter("@Image", SqlDbType.Image, imagedata.Length);
myParameter.Value = imagedata;
myCommand.Parameters.Add(myParameter);


// Open the connection and execture the statement.
myConnection.Open();
myCommand.ExecuteNonQuery();
}
finally
{
myConnection.Close();
}
}

Visual Basic.NET

Private Sub SaveToSqlDatabase(ByVal image As AtalaImage)
Dim myConnection As SqlConnection = Nothing
Try
' Save image to byte array.
Dim imagedata() As Byte = image.ToByteArray(New Atalasoft.Imaging.Codec.JpegEncoder(75))


' Create the SQL statement to add the image data.
myConnection = New SqlConnection(CONNECTION_STRING)
Dim myCommand As SqlCommand = New SqlCommand
("INSERT INTO Atalasoft_Image_Database (Caption, ImageData) VALUES ('" + txtCaption.Text + "', @Image)", myConnection)
Dim myParameter As SqlParameter = New SqlParameter("@Image", SqlDbType.Image, imagedata.Length)
myParameter.Value = imagedata
myCommand.Parameters.Add(myParameter)


' Open the connection and execture the statement.
myConnection.Open()
myCommand.ExecuteNonQuery()
Finally
myConnection.Close()
End Try
End Sub

从数据库中读取:

C#

private AtalaImage OpenFromSqlDatabase()
{
SqlConnection myConnection = null;
try
{
// Establish connection and SELECT statement.
myConnection = new SqlConnection(CONNECTION_STRING);
SqlCommand myCommand = new SqlCommand
("SELECT ImageData FROM Atalasoft_Image_Database WHERE Caption = '" + txtCaption.Text + "'", myConnection);
myConnection.Open();


// Get the image from the database.
byte[] imagedata = (byte[])myCommand.ExecuteScalar();
if (imagedata != null)
{
AtalaImage image = AtalaImage.FromByteArray(imagedata);
return image;
}
else
{
MessageBox.Show("Image does not exist in database.");
return null;
}
}
finally
{
myConnection.Close();
}
}

Visual Basic .NET

Private Function OpenFromSqlDatabase() As AtalaImage
Dim myConnection As SqlConnection = Nothing
Try
' Establish connection and SELECT statement.
myConnection = New SqlConnection(CONNECTION_STRING)
Dim myCommand As SqlCommand = New SqlCommand
("SELECT ImageData FROM Atalasoft_Image_Database WHERE Caption = '" + txtCaption.Text + "'", myConnection)
myConnection.Open()


' Get the image from the database.
Dim imagedata() As Byte = CType(myCommand.ExecuteScalar(), Byte())
If (Not imagedata Is Nothing) Then
Dim image As AtalaImage = AtalaImage.FromByteArray(imagedata)
Return image
Else
MessageBox.Show("Image does not exist in database.")
Return Nothing
End If
Finally
myConnection.Close()
End Try
End Function

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值