منتديات مدينة الاحلام

منتديات مدينة الاحلام (http://m.dreamscity.net/)
-   قسم تطوير المواقع و المنتديات (http://m.dreamscity.net/f41.html)
-   -   طريقة عمل صورة مصغره (thumbnail) من صورة كبيره مخزنه فى قاعدة البيانات فى حقل BLOB (http://m.dreamscity.net/t32875.html)

php pro 22 - 07 - 2010 10:47

طريقة عمل صورة مصغره (thumbnail) من صورة كبيره مخزنه فى قاعدة البيانات فى حقل BLOB
 
السلام عليكم.. كيفكم اخوانى ان شاء الله تكونوا بخير وعافيه..

بوريلكم اليوم طريقه عمل صورة مصغره من صورة كبيره مخزنه فى قاعده البيانات

الدرس مهم واساسى لعمل السكريبتات كبيره الحجم لانه يخفف اكثر من 10 اضعاف حجم الصورة وبالتالى سرعة تحميل الموقع ترتفع..

خلنا من الفقره الاولى وهو طريقه رفع صورة داخل قاعده البيانات لانها موجوده هنا فى المنتدى وكثير من المواقع يعنى مافى داعى نتطرق لها..

يعنى الحين نحن لدينا صورة مثلا بحجم 500 فى 500 مخزنه فى القاعده وانت تعرضها فى نظام grid "اى الصور بجانب بعضها"

مثله مثل سكريبتات عرض المنتجات والاسواق الاكترونيه الخ...

مثلا اذا كنت تعرض 15 منتج فى صفحة واحد صارت معاناه انك تعرض 15 صورة بحجم 500 فى 500 من القاعده لانها تاخد وقت كبير..

ايضا تعمل لود على كارت الشاشه لاصحاب الحاسبات الضعيفه و ممكن يجى للمتصفح عدم استجابه..

وهذى كلها عيوب راح نتفاداها اليوم ان شاء الله..

بعد هذى المقدمه الطويله اللى اظن انها اطول من الموضوع نفسه نبدا


[PHP]

//انواع الصور اللى قد يعرضها المتصفح
header("Content-type: image/jpeg");
header("Content-type: image/pjpeg");
header("Content-type: image/png");
header("Content-type: image/gif");
//ملف الالتصال بالقاعده
include'include/connect_to_db.php';
//اختيار الصورة الكبيره من قاعده البيانات عن طريق رقم التعريف او اى طريقة اخرى تناسب عملك
$q="select plink from pics where id='".$_GET['id']."'";
$do=mysql_query($q);
$row = mysql_fetch_array($do);
$imagebytes = $row['plink'];
//نحول النص اللى يمثل الصورة الى صورة
$si = imagecreatefromstring($imagebytes);
//نجيب الحجم الاصلى للصورة
$iWidth = imagesx($si);
$iHeight = imagesy($si);
// هنا تحديد الحجم الجديد للصورة
$niWidth = 145 ;
$niHeight = 122;
//ننشا صورة جديديه بالمقاسات الجديدية
$ni = imagecreatetruecolor($niWidth, $niHeight);
//نسخ الصورة الكبيره الى الصورة الصعيره بعد عمليه التصغير
imagecopyresized(
$ni, $si,
0, 0, 0, 0,
$niWidth, $niHeight,
$iWidth, $iHeight);
ob_start();
//الصورة راح تكون jpg
imageJPEG($ni);
// هنا ناخد ناتج العملية ونضعه فى متغير
$thumb = ob_get_contents();
ob_end_clean();
// طباعة المنتغير اى طباعة الصورة
echo $thumb;
?>


[/PHP]


الشرح موجود داخل الكود..

طبعا اذا اردت استعاء اى نسخة مصغره بتكون هكذا



[PHP][/PHP]


حيث ان 5 هو رقم التعريف اللى راح تختار به الصورة الكبيره من القاعده وتدع الملف يقول بالباقى

file.php هو اسم الملف اللى يضم الكود


بالتوفيق


منقول للفائده


الساعة الآن 15:46.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd
ترقية وتطوير: مجموعة الدعم العربى
جميع الحقوق محفوظه لمدينة الاحلام ©


SEO by vBSEO