任何人都可以告訴我,如果你知道是WM 6的位圖和隱寫問題嗎?Bitmap.Save問題
我正在開發一個項目,我必須在位圖中隱藏數字簽名。該算法工作完美,直到我有內存中的圖像位圖包含修改後的字節。 但我保存圖像(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");
}
}
}
張貼一些代碼 - 你確定你已經更新了原始圖像並保存了該圖像嗎?或者你是否在創建一個新的圖像並最終保存原始圖像? – Oded 2010-03-14 21:13:10
但是,更改字節的代碼在哪裏?我敢打賭,你不是在保存你認爲你正在保存的東西。 – ctacke 2010-03-14 22:59:07
我確定我正在保存我需要保存的東西....如果你在Save meth code中查看,我會刪除以查看圖像的字節並且它是正確的數據。 我只是修改LSB。 如果我錯了,請糾正我的錯誤:但如果bmp根本沒有壓縮比任何修改應保持正確? – user284026 2010-03-15 05:04:05