# Native Code > برنامه نویسی در Delphi >  پنهان کردن متن در تصویر (استگانوگرافی)

## hesamy2004

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

----------


## ghabil

این کد تبدیل دوتا فرمت به هم ، میتونی بجای فایل از 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

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


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

----------


## hesamy2004

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

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

----------


## reza10203045

دوست عزیز امکان دارد الگوریتم به کار برده شما را مشاهده کنیم؟

----------

