السلام عليكم ,,
احترت ,, وين احط البريمج ,,, هل يتبع قسم برمجة الالعاب او قسم منتدى السي ,,, في الاخير قلت مالنا الا منتدى السي ,,
فكرة البرنامج :
خطرت الفكرة عندما فتح الاخ حسن الجودي موضوع الصور ومالصور وان الواحد لازم يتعلم ما يدور ورا الكواليس ,,
بالفعل ,, بدأت احاول اتعلم كيف يتم تحميل صورة bmp من الصفر وبدون دوال مساعدة .. لكن تعرضت لصدمة عنيفة بسبب التعقيد ..في بنية الملف .
بالتالي قلت ليش ما اصنع نسق خاص بي .. يحمل امتداد خاص وبنية خاصة للملف ,
بالفعل عملت البرنامج ونجحت الفكرة بتوفيق من الله جل جلاله .
طريقة عمل البرنامج :
الفكرة بسيطة ,
وهي أن أقرأ كل بكسل موجود على النافذة .. ( طبعا اذا كانت النافذة تحمل صورة .. فاني اقرأ محتويات هذه الصورة بعد معرفة ابعاد الصورة .
استخدم الدالة GetPixel وهي من دوال Win API لهذا الغرض .
ثم اقوم بفصل كل قناة على حده .. R - G - B باستخدام الدالة GetRValue واخواتها ..
هكذا
fprintf(fp,"%d\n",(int)image.bmHeight);
fprintf(fp,"%d\n",(int)image.bmWidth);
for(y=0;y<=image.bmHeight-1;y++)
{
for(x=0;x<=image.bmWidth-1;x++)
{
pixel=GetPixel(hdc,x,y);
rgb.r= GetRValue(pixel);
fprintf(fp,"%d\t",(int)rgb.r);
rgb.g= GetGValue(pixel);
fprintf(fp,"%d\t",(int)rgb.g);
rgb.b= GetBValue(pixel);
fprintf(fp,"%d\n",(int)rgb.b);
}
}لاحظ أني اضفت طول وعرض الصورة في أول الملف ,,,,
ثانيا :
قراءة بيانات الصورة ..
القراءة بسيطة .. كل ما احتاجه هو تركيب
RGB {
int r,g,b; };
ثم اقوم بقراءة الطول والعرض وثم بيانات الملف
طبعا البرنامج لازال ناقص ...
حيث حجم الصورة محدود .. بسبب بعض الاضافات التي يجب ان اضيفها
ويوجد العديد من الملاحظات على البرنامج لكن فقط حبيت أعرض عليكم الفكرة الاولية
طبعا في الاخير ينشأ ملف من نوع AT2 وهو اختصار لاسم الموقع ..
الان لدينا نسق صورة خاص بنا :)
هكذا يتم تخزين الصورة
396 401 255 255 255 255 255 255 255 255 255 229 229 247 229 229 247 229 229 247 0 0 0 229 229 247
يوجد ثلاث أدوات
الاولى تقوم بصنع الصورة بالاعتماد على الصورة التي حملتها
انقر على الزر الايسر لتحمل الصورة الى البرنامج
انقر الزر الايمن لتحفظ الصورة على هيئة AT2
الثانية تقوم بقراءة الصورة التي من نوع AT2
انقر الزر الايمن لقراءة الملف
والزر الايسر لعرض الصورة
الاداة الثالثة : اداة تقوم بصنع الصورة بالاعتماد على ماترسمه انت داخل الملف
وهي شبيهة بالاداة السابقة نوعا ما وتنشئ نفس الملف AT2 .. لتقرأه ببرنامج عارض صور AT2
طبعا يوجد عيب صغينون .. وهو ان الصورة الناتجة حجمها سيكون ضعف حجم الصورة الاصل بحوالي 200^13*1222 مرة
ننتظر الاراء

