Может кто-нибудь сказать мне, если вы знаете, что проблема с битмапом и стеганографией для WM 6?
Я работаю над проектом, и мне нужно скрыть цифровую подпись в растровом изображении. Алгоритм работает отлично, так как пока у меня нет изображения в памяти, растровое изображение содержит измененные байты.
Но после того, как я сохраню изображение (Bitmap.Save ()) и заново открою изображение, эти байты будут потеряны. Когда я говорю «потерянный», я имею в виду, что это оригинальные байты того времени, когда был сделан снимок.
Спасибо.
вот метод сохранения:
{
if (miSave.Enabled == false)
{
MessageBox.Show("Error, no image is opened. ", "Save Error");
}
else
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Bitmap|*.bmp|JPEG|*.jpg";
if (sfd.ShowDialog() == DialogResult.OK)
{
if (sfd.FileName != "")
{
Bitmap origImage = pictureBox.GetBitmap();
///just a test to see that the bytes are the modified ones..and they are
byte[] origImageByte = ImageProcessing.ConvertBitmapToByteArray(origImage, origImage.Height * origImage.Width +54);
origImage.Save(sfd.FileName, formatOfImage);
MessageBox.Show("Succesfully ", "Image Saved");
}
}
}
}
и открытый метод
{
if (pictureBox.Visible == false)
{
try
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Bitmap|*.bmp|JPEG|*.jpg";
if (dlg.ShowDialog() == DialogResult.OK)
{
Bitmap img = new Bitmap(dlg.FileName);
initialSize.Width = img.Width;
initialSize.Height = img.Height;
imageOpened();//this just does does some enabling buttons nothing more
pictureBox.SetBitmap(img, pixelSize);
pictureBox.ShowImage(img);
trackBar.TrackBarPosition(lblMinVal, lblMaxVal, this.Size);
}
}
catch
{
DialogResult res = MessageBox.Show("Failed loading image");
}
}
}