У меня есть обычная картинка в форме, у меня есть изображение подписи, которое я восстанавливаю из базы данных, когда я сохраняю изображение с подписью, оно имело белый фон, а подпись была черной, но когда я восстановить изображение, у него черный фон и подпись белого цвета.
Может кто-нибудь объяснить, почему это происходит и как я могу это исправить ??
Вы можете найти изображение в следующем направлении
http://www.mediafire.com/?c91awvyrya98m2c
Содержится в файле rar: Signature.jpg
Код следующий:
using System.Drawing;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
using System.Data;
namespace WindowsFormsApplication3
{
class TestForm : System.Windows.Forms.Form
{
PictureBox oPictureBoxSignature;
public Database Db;
public TestForm()
{
Db = DatabaseFactory.CreateDatabase("DBTest");
oPictureBoxSignature = new PictureBox();
}
public bool Save_Record()
{
byte[] Signature = imageToByteArray(oPictureBoxSignature.Image);
return Save(Signature);
}
public bool Save(byte[] Signature)
{
using (DbCommand dbCmd = Db.GetStoredProcCommand("Save_Signature"))
{
Db.AddInParameter(dbCmd, "Signature", DbType.Binary, Signature);
return Db.ExecuteNonQuery(dbCmd) > 0;
}
}
public void Recover_Record(byte[] Signature)
{
oPictureBoxSignature.Image = byteArrayToImage(Signature);
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
if (byteArrayIn != null)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
else
return null;
}
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
if (imageIn != null)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
else
return null;
}
}
}