ما افضل plugin او أسلوب لـ CodeIgniter لعمل مصغرات الصور لموقع بياناتوا كبيرة من ناحية الأداء

  • true

السلام عليكم ورحمة الله وبركاتة

ما هو أفضل plugin او طريقة لـ Codeigniter لعمل مصغرات لصور الموقع باحجام مختلفة لموقع بياناتوا كبيرة,

ما هو أفضل أسلوب من ناحية: الأداء والسرعة, أفراغ أو مسح المصغرات بسهولة دون خلط المصغرات مع الصور الأصلية, قابلية الوصول الوصول لمصغرات عضو محدد, ولا أريد هذة الاسلوب فى التصغير Thum.php?img=/uploads/car.jpg&width=150&height=120

بسبب الضغط على السيرفر فى كل مرة للتاكد من وجود المصغرة وانوا لا يتناسب معى لانى اريد الانتقال الى خدمات amazon

فى أنتظار أقتراحاتكم.


أتفق مع أخى حاتم فى أن أفضل شئ هو الإعتمادية على المكتبة التى توفرها codeigniter و لكن أن يتم ذلك بذكاء و عمل config جيد حتى لا تكون الصور مشوهة أيضاً .. إليك بعض من الأكواد التى أستخدمها عموماً (عدلتها لتناسبك و لكن لم أجربها ربما أخطأ فى شئ)

    public function upload_file($field_name,$file_name,$folder,$allowed_exts,$max_size){

        $path = FCPATH."uploads".$folder;

        if(!is_dir($path)){ mkdir($path);  @file_put_contents($path."index.html","Forbidden"); }

        $config['upload_path'] = $path;
        $config['allowed_types'] = $allowed_exts;
        $config['max_size']    = $max_size;
        $config['file_name'] = $file_name;
        $config['overwrite'] = false;                                   
        $this->load->library('upload', $config);

        $uploaded = $this->upload->do_upload($field_name);        
        $upload_data =  $this->upload->data();

        if($upload_data["file_type"] && $upload_data["file_ext"] && $upload_data["client_name"]){

            $status = "success";    
            $file_size = $upload_data["file_size"];                
            $file_path = $upload_data["full_path"];

            $max_width = 500; // max width  
            $max_thumb = 250; // max thumb width  
            $file_path = $this->resize_me($file_path,$max_width,FALSE); // resize to max width
            $thumb_name = "thumb_".$upload_data["orig_name"]; // thumb name
            $thumb_url = $folder.$thumb_name; // thumb url
            $thumb_path = $this->resize_me($file_path,$max_thumb,FALSE,FALSE,TRUE); // resize thumb                   

        }


    }




    public function resize_me($path,$width,$height,$percent = 100 ,$new = FALSE){

        if( ($width && $height) || ($width) || $percent){

            list($mywidth, $myheight, $type, $attr) = getimagesize($path);       

            $config['quality'] = "100%";   

            $cancel = FALSE;

            if($width > $mywidth){
                $width = $mywidth;
            }

            $config['width'] = $width;                                  

            $config['maintain_ratio'] = TRUE;
            $this->load->library('image_lib');                            
            // resize
            $config['image_library'] = 'gd2';
            $config['source_image'] = $path;

            if($new == TRUE){               
                $filename = basename($path);
                $config['new_image'] = $path = str_replace($filename,"thumb_".$filename,$path);
            }

            $this->image_lib->initialize($config);
            $this->image_lib->resize();
            // resize

            return $path;

        }

    }

شكرآ جزيلآ اخى عبد الله على الدوال المرفقة لقد وفرت على الكثير