بسم الله الرحمن الرحيم
انا تابعت دورة الاخ عبدالقادر للصور ولكن فى
الدرس السادس فعلت كل شئ تمام ولكن تظهرلى رساله بأن الصورة غير صالحه بالرغم من ان الصورة نفطيه
![[صورة: 150587649318231.png]](http://store1.up-00.com/2017-09/150587649318231.png)
لذلك أرجو توضيح الخطأ أذا كان برمجى او فى نوع الصورة ووضعت المثال بالكامل فى المرفقات مع الصورة
اضف الوحدة jpej في uses
وسيختفي باذن الله
السلام عليكم
جرب ما يلي
ضف متغير مثلا misc كما يلي (انتبه لاخر سطر في الاكواد التالية)
كود :
var
Form1: TForm1;
tms:TMemoryStream;
bmp_file:BMP_HEADER;
ary:array of array of Tthreecolor;
ary_t:array of array of Tthreecolor;
misc:array[1..2]of DWORD;
ثم عدل ما يلي:
كود :
procedure TForm1.write_to_img(img:TImage);
var
i:Integer;
begin
try
tms:=TMemoryStream.Create;
tms.Write(bmp_file,SizeOf(BMP_HEADER));
tms.Write(misc,SizeOf(misc));
وايضا في الزر 3
كود :
procedure TForm1.btn3Click(Sender: TObject);
var
i:Integer;
begin
try
tms:=TMemoryStream.Create;
tms.Write(bmp_file,SizeOf(BMP_HEADER));
tms.Write(misc,SizeOf(misc));
احذف المتغير bmp_file هنا
كود :
procedure TForm1.btn1Click(Sender: TObject);
var
//bmp_file:BMP_HEADER;
جرب واخبرنا بالنتيجة
jpeg -- هو التعامل مع الصور النفطية فقط bmp ومع ذلك أضفت الوحده jpeg ونفس المشكلة
بارك الله فيك أخ عبدالقادر ودومت دائماّ لنا
اعتقد أنك قمت بوضع فاصل بين الهيدر وجسم الصورة وأذا كان أعتقادى خاطئ أرجو بالتصحيح أذا تكرمت أخى عبدالقادر !! (y)
حجم الHeader كان 46byte والمتغير Offset كان 54 حيث هناك 8byte ناقصة عند كتابة الصورة
التعديل الذي قمت به مؤقت ليعمل المثال وليس حل انيق
التعامل مع الترويسة Header ناقص كثيرا
اخوك عيد العزيز من الجزائر والاخ عبدالقادر سوري بتركيا.
اها شكراّ للتنبيه أخى
فعلاّ الهيدر كان ناقص وكان هو سبب المشكلة قمت بالتعديل
_res5:array[1..6] of dword;
معذرة أختلط عليا الامر فى الاسامى
