PDA

View Full Version : پنهان کردن متن در تصویر (استگانوگرافی)



hesamy2004
جمعه 08 تیر 1386, 13:25 عصر
دوستان من یه برنامه نوشتم که میشه با اون متن رو توی یه تصویر با فرمت BMP ذخیره کنم ولی حالا میخوام برنامه رو ارتقا بدم تا بتونم تو تصاویر JPEG هم متنمو بریزم. همونطور که میدونید دلفی اجازه دسترسی به پیکسل های تصویر با فرمت JPEG رو نمیده (برعکس به پیکسلهای BMP اجازه دسترسی میده) و من حسابی موندم که چیکار باید بکنم.
لطف کنید و اگه اطلاعاتی تو این زمینه دارین من رو راهنمایی کنید.

ghabil
جمعه 08 تیر 1386, 14:56 عصر
این کد تبدیل دوتا فرمت به هم ، میتونی بجای فایل از Stream استفاده کنی ، البته حتما کتابخانه ای که روی Jpeg هم TextOut کنه هست ولی من الان چیزی یادم نمیاد.



procedure Bmp2Jpeg(const BmpFileName, JpgFileName: string);
var
Bmp: TBitmap;
Jpg: TJPEGImage;
begin
Bmp := TBitmap.Create;
Jpg := TJPEGImage.Create;
try
Bmp.LoadFromFile(BmpFileName);
Jpg.Assign(Bmp);
Jpg.SaveToFile(JpgFileName);
finally
Jpg.Free;
Bmp.Free;
end;
end;

procedure Jpeg2Bmp(const BmpFileName, JpgFileName: string);
var
Bmp: TBitmap;
Jpg: TJPEGImage;
begin
Bmp := TBitmap.Create;
Jpg := TJPEGImage.Create;
try
Jpg.LoadFromFile(JpgFileName);
Bmp.Assign(Jpg);
Bmp.SaveToFile(BmpFileName);
finally
Jpg.Free;
Bmp.Free;
end;
end;

someCoder
جمعه 08 تیر 1386, 15:33 عصر
دوستان من یه برنامه نوشتم که میشه با اون متن رو توی یه تصویر با فرمت BMP ذخیره کنم ولی حالا میخوام برنامه رو ارتقا بدم تا بتونم تو تصاویر JPEG هم متنمو بریزم. همونطور که میدونید دلفی اجازه دسترسی به پیکسل های تصویر با فرمت JPEG رو نمیده (برعکس به پیکسلهای BMP اجازه دسترسی میده) و من حسابی موندم که چیکار باید بکنم.
لطف کنید و اگه اطلاعاتی تو این زمینه دارین من رو راهنمایی کنید.

اطلاعات در فایل JPEG مثل BMP دقیقا همون مقدار پیکسلها نیست! یعنی اصولا عکسهای JPEG از lossy compression استفاده میکنن و بنابراین نمیشه مثل BMP مثلا از LSB استفاده کرد برای ذخیره کردن اطلاعات!
روش کار در JPEG خیلی متفاوته. فکر کنم این سایت بتونه برای شروع کمکت کنه:
http://www.guillermito2.net/stegano/jsteg/index.html

hesamy2004
جمعه 08 تیر 1386, 18:36 عصر
Ghabil جون از راهنماییت ممنونم ولی راه پیشنهادی شما یه جور دور زدنه. با تبدیل jpeg به bmp مشکل ما حل میشه ولی حجم تصویر خیلی زیاد میشه و این اصلاً مناسب نیست. ضمن اینکه تبدیل معکوس یا مجدد از bmp به jpeg باعث از دست رفتن اطلاعات پنهان شده در تصویر میشه.

SomeCoder جون از راهنمایی شما هم ممنونم. سایت پیشنهادی شما را با دقت مطالعه میکنم. ضمن اینکه برنامه های معرفی شده JPSteg و JPHide از معروفترین برنامه ها در این زمینه هستند.

reza10203045
شنبه 16 مهر 1390, 23:09 عصر
دوست عزیز امکان دارد الگوریتم به کار برده شما را مشاهده کنیم؟