Warning: Function get_magic_quotes_gpc() is deprecated in /home/forumbs/public_html/includes/class_core.php on line 1960
اسلوب تفكيك الصور(تحويلها الى نص)وكيفية استعادتها [الأرشيف] - منتديات بانى ستار

المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : اسلوب تفكيك الصور(تحويلها الى نص)وكيفية استعادتها



walid_8281500
03-23-2009, 02:35 AM
بسم الله الرحمن الرحيم
نستطرق اليوم الى مبدا كيفية تحويل الصور الى نصوص وكيفية استعادتها الى وضعها الطبيعة
الفائدة من الطريقة التالية هي استخدامها في عدة نواحي منها مرفقات البريد الالكتروني وضع الصورة في قاعدة البيانات نقل الصورة دون الحاجة الى جعلها مرفق واستخدامات اخرى خاصة
الدوال الاساية المستخدمة في هذه العملية هيا ثلاث دوال
chunk_split تقوم هذه الدالة بفصل النص الى قطع
****64_encode تقوم هذه الدالة بالتشفير والتحويل الى نظام 64 بت
****64_decode تقوم هذه الدالة باعادة فك التشفير الذي تم بواسطة ****64_encode
كيفية استخدامهم طبعا على افتراض انك انشاءت فورم ارسال البيانات واسميت الحقل pic



$pic=$_FILES['pic']['tmp_name'];#الحصول على اسم الصورة المرسل ليتم قرائتها
$handle = fopen($pic,'r');#انشاء مقبض لفتح الملف واعادة مؤشر بالملف المفتوح
$file_content = fread($handle,filesize($pic));#قراءة الملف وتخزينه في متغير
fclose($handle); #اغلاق الملف

$encoded = chunk_split(****64_encode($file_content)); #يتم هنا تشفير النص الى نظام 64 بت بواسطة الدالة ****64_encode
#ومن ثم يتم تقسيم النص المشفير الى كتل عن طريق الدالة chunk_split


الان اصبح لدينا الصورة وقد تم تحويلها الى كتلة نصية ويهل استخدامها ووضعها في اي مكان قاعدة بينات ملف ضمن الكتلة البرمجية في اي مكان
ملاحظة اذا اردت وضع هذا النص في قاعادة البيانات فيجب استخدام نوع الحقل من نوع long_****
اي نص طويل لان النص ممكن ان يكون طويل بحسب حجم الصورة ولكي لايفقد اي شي من البيانات
الان كيفية الاستعادة بسيطة وتعتمد على دالة اعاة التفشير
طبعا نستخدم النص الي انتاجناه والذي ممكن ان يكون خزناه في قاعدة بيانات اوغير ها او حتى متغير ملف في اي مكان
نقوم باخذ هذا النص واستخدام التالي
نتسخدم الدالة ****64_decode لاعادة النص المشفر الى وضعه الطبيعي



header('Content-type: image/gif');#ارسال ترويسة الى المستعرض انه سيتم ارسال كتلة صورة من نوع gif
#ليتم التعامل معها
echo ****64_decode($row['pic']);#على افتراض ان النص في جدول قاعدة البيانات

وبذلك يكون انتهت المقالة وارجو من الله ان اكون قد وفقت في الشرح والله ولي التوفيق