النتائج 1 إلى 4 من 4

الموضوع: function : ImageCreateFromBMP الان وحصريا

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Jun 2008
    المشاركات
    83

    function : ImageCreateFromBMP الان وحصريا



    امر انشاء صورة من bmp
    لقد وجدت هذه الدالة في موقع php
    الذي يبحث الكثير من المبرمجين عنه

    تساعد هذه الدالة في انشاء مصغرات للصور ذات الامتداد bmp او الكتابة على هذا النوع من الصور
    الدالة
    كود PHP:
    <?
    function ImageCreateFromBMP($filenameeaea)
    {
     
    //Ouverture du fichier en mode binaire
       
    if (! $f1 fopen($filenameeaea,"rb")) return FALSE;
     
    //1 : Chargement des ent?tes FICHIER
       
    $FILE unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset"fread($f1,14));
       if (
    $FILE['file_type'] != 19778) return FALSE;
     
    //2 : Chargement des ent?tes BMP
       
    $BMP unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.
                     
    '/Vcompression/Vsize_bitmap/Vhoriz_resolution'.
                     
    '/Vvert_resolution/Vcolors_used/Vcolors_important'fread($f1,40));
       
    $BMP['colors'] = pow(2,$BMP['bits_per_pixel']);
       if (
    $BMP['size_bitmap'] == 0$BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset'];
       
    $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8;
       
    $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']);
       
    $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4);
       
    $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4);
       
    $BMP['decal'] = 4-(4*$BMP['decal']);
       if (
    $BMP['decal'] == 4$BMP['decal'] = 0;
     
    //3 : Chargement des couleurs de la palette
       
    $PALETTE = array();
       if (
    $BMP['colors'] < 16777216)
       {
        
    $PALETTE unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4));
       }
     
    //4 : Cr?ation de l'image
       
    $IMG fread($f1,$BMP['size_bitmap']);
       
    $VIDE chr(0);
       
    $res imagecreatetruecolor($BMP['width'],$BMP['height']);
       
    $P 0;
       
    $Y $BMP['height']-1;
       while (
    $Y >= 0)
       {
        
    $X=0;
        while (
    $X $BMP['width'])
        {
         if (
    $BMP['bits_per_pixel'] == 24)
            
    $COLOR unpack("V",substr($IMG,$P,3).$VIDE);
         elseif (
    $BMP['bits_per_pixel'] == 16)
         {  
            
    $COLOR unpack("n",substr($IMG,$P,2));
            
    $COLOR[1] = $PALETTE[$COLOR[1]+1];
         }
         elseif (
    $BMP['bits_per_pixel'] == 8)
         {  
            
    $COLOR unpack("n",$VIDE.substr($IMG,$P,1));
            
    $COLOR[1] = $PALETTE[$COLOR[1]+1];
         }
         elseif (
    $BMP['bits_per_pixel'] == 4)
         {
            
    $COLOR unpack("n",$VIDE.substr($IMG,floor($P),1));
            if ((
    $P*2)%== 0$COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F);
            
    $COLOR[1] = $PALETTE[$COLOR[1]+1];
         }
         elseif (
    $BMP['bits_per_pixel'] == 1)
         {
            
    $COLOR unpack("n",$VIDE.substr($IMG,floor($P),1));
            if     ((
    $P*8)%== 0$COLOR[1] =  $COLOR[1]        >>7;
            elseif ((
    $P*8)%== 1$COLOR[1] = ($COLOR[1] & 0x40)>>6;
            elseif ((
    $P*8)%== 2$COLOR[1] = ($COLOR[1] & 0x20)>>5;
            elseif ((
    $P*8)%== 3$COLOR[1] = ($COLOR[1] & 0x10)>>4;
            elseif ((
    $P*8)%== 4$COLOR[1] = ($COLOR[1] & 0x8)>>3;
            elseif ((
    $P*8)%== 5$COLOR[1] = ($COLOR[1] & 0x4)>>2;
            elseif ((
    $P*8)%== 6$COLOR[1] = ($COLOR[1] & 0x2)>>1;
            elseif ((
    $P*8)%== 7$COLOR[1] = ($COLOR[1] & 0x1);
            
    $COLOR[1] = $PALETTE[$COLOR[1]+1];
         }
         else
            return 
    FALSE;
         
    imagesetpixel($res,$X,$Y,$COLOR[1]);
         
    $X++;
         
    $P += $BMP['bytes_per_pixel'];
        }
        
    $Y--;
        
    $P+=$BMP['decal'];
       }
     
    //Fermeture du fichier
       
    fclose($f1);
     return 
    $res;
    }
    ?>


    تحميل الدالة
    http://www.rad.201mb.com/uploader/do...omBMP.zip.html
    طريقة الاستخدام سهلة مثل
    ImageCreateFromgif()



    كود PHP:
     
    include("ImageCreateFromBMP");
    ImageCreateFromBMP($filename
    الموضوع غير منقول





    التعديل الأخير تم بواسطة rad12345 ; 03-06-2009 الساعة 11:58 PM


  2. #2
    Banned
    تاريخ التسجيل
    May 2008
    المشاركات
    368


    المشكلة هنا ليست في الدالة ولكن في الصور دات الإمتداد BMP فهي صور كبيرة في الحجم ولا تختلف إطلاقا في الجودة مع PNG ذات الحجم الأقل.

    لذلك فلا أرى سببا لإستعمال صور من نوع BMP ... إلا أن توفر الدالة شيئ لابد منه تحسباً لبعض الحالات...






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jun 2008
    المشاركات
    83


    خي ليس شرطا استخدام هذه الدالة لتصغير الصور فيمكن استخدامها في تحويل الصور
    مثال : سكربت لتحويل امتدادات الصور jpg,gif,png,bmb قمت ببرمجته الان
    اضغط هنا رؤية الثال
    انا لم اقم بتصميم شكل للسكربت
    بامكانك تصميم شكل للسكربت من خلال القوالب
    header راس الصفحة
    footer اسفل الصفحة
    viewfile عرض الملف
    viewerorr عرض الاخطاء

    اذا اردت تركيب السكربت
    مميزات السكربت
    1 نظام قوالب
    2 محمي 100% لا يمكن رفع شل من خلاله
    3 كود امان
    4 بامكانك تغيير المجلد الذي ترفع اليه الصور
    شرح التركيب
    ارفع الملفات الى موقعك واعطي المجلدات التالية الترخيص 777
    easycach
    images
    قم بتعديل نلف config.php الى ما يناسبك
    لتحميل السكربت اضغط هنا
    اذا هناك احد يحتاج الى السكربت ويريد ان اطوره او اقوم بتصميم له لا مشكلة بالمجان






  4. #4


    شكراً أخي على الدالة و جاري التجربة





    __________________
    حازم نور
    http://about.me/Hazem





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض