CI框架文件上傳類及圖像處理類用法分析,ci文件上傳_PHP教程
Jul 12, 2016 am 08:52 AMCI框架文件上傳類及圖像處理類用法分析,ci文件上傳
本文實例講述了CI框架文件上傳類及圖像處理類用法。分享給大家供大家參考,具體如下:
//列表頁banner圖片 public function edit_list_page_banner($category_id=""){ $category_id= empty($category_id)?$_POST["category_id"]:$category_id; //上傳圖片 if(isset($_POST["key"]) && $_POST["key"] == "upload"){ /* 1.set_upload_path */ $config['upload_path']="./upload/source/".date("Y/m/d");//文件上傳目錄 if(!file_exists("./upload/source/".date("Y/m/d"))){ mkdir("./upload/source/".date("Y/m/d"),0777,true);//原圖路徑 } if(!file_exists("./upload/big_thumb/".date("Y/m/d"))){ mkdir("./upload/big_thumb/".date("Y/m/d"),0777,true);//大縮略圖路徑 } if(!file_exists("./upload/small_thumb/".date("Y/m/d"))){ mkdir("./upload/small_thumb/".date("Y/m/d"),0777,true);//小縮略圖路徑 } $config['allowed_types']="gif|jpg|png|txt";//文件類型 $config['max_size']="20000";//最大上傳大小 $this->load->library("upload",$config); if($this->upload->do_upload('userfile'))//表單中name="userfile" { //上傳成功之后,生成兩張縮略圖 $data=$this->upload->data();//返回上傳圖片的信息 $this->load->library("image_lib");//載入圖像處理類庫 //第一種方式:大縮略圖的配置參數(shù) /* $config_big_thumb['image_library'] = 'gd2';//gd2圖庫 $config_big_thumb['source_image'] = $data['full_path'];//原圖 $config_big_thumb['new_image'] = "./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'];//大縮略圖 $config_big_thumb['create_thumb'] = true;//是否創(chuàng)建縮略圖 $config_big_thumb['maintain_ratio'] = true; $config_big_thumb['width'] = 300;//縮略圖寬度 $config_big_thumb['height'] = 300;//縮略圖的高度 $config_big_thumb['thumb_marker']="_300_300";//縮略圖名字后加上 "_300_300",可以代表是一個300*300的縮略圖 */ //第二種:大縮略圖的配置參數(shù) /* $config_big_thumb=array( 'image_library' => 'gd2',//gd2圖庫 'source_image' => $data['full_path'],//原圖 'new_image' => "./upload/big_thumb/".date("Y/m/d")."/".$data['file_name'],//大縮略圖 'create_thumb' => true,//是否創(chuàng)建縮略圖 'maintain_ratio' => true, 'width' => 300,//縮略圖寬度 'height' => 300,//縮略圖的高度 'thumb_marker'=>"_300_300"//縮略圖名字后加上 "_300_300",可以代表是一個300*300的縮略圖 ); */ //第三種方式:將部分配置信息放到了config.php文件中 $config_big_thumb=$this->config->item("config_big_thumb"); $config_big_thumb['source_image']=$data['full_path']; $config_big_thumb['new_image']="./upload/big_thumb/".date("Y/m/d")."/".$data['file_name']; //小縮略圖的配置參數(shù) /* $config_small_thumb['image_library'] = 'gd2';//gd2圖庫 $config_small_thumb['source_image'] = $data['full_path'];//原圖 $config_small_thumb['new_image'] = "./upload/small_thumb/".date("Y/m/d")."/".$data['file_name'];//大縮略圖 $config_small_thumb['create_thumb'] = true;//是否創(chuàng)建縮略圖 $config_small_thumb['maintain_ratio'] = true; $config_small_thumb['width'] = 100;//縮略圖寬度 $config_small_thumb['height'] = 100;//縮略圖的高度 $config_small_thumb['thumb_marker']="_100_100";//縮略圖名字后加上 "_100_100",可以代表是一個100*100的縮略圖 */ //小縮略圖的配置參數(shù) $config_small_thumb=array( 'image_library' => 'gd2',//gd2圖庫 'source_image' => $data['full_path'],//原圖 'new_image' => "./upload/small_thumb/".date("Y/m/d")."/".$data['file_name'],//大縮略圖 'create_thumb' => true,//是否創(chuàng)建縮略圖 'maintain_ratio' => true, 'width' => 100,//縮略圖寬度 'height' => 100,//縮略圖的高度 'thumb_marker'=>"_100_100"//縮略圖名字后加上 "_300_300",可以代表是一個300*300的縮略圖 ); //$this->load->library("image_lib",$config_thumb); $this->image_lib->initialize($config_big_thumb); $this->image_lib->resize();//生成big縮略圖 $this->image_lib->initialize($config_small_thumb); $this->image_lib->resize();//生成small縮略圖 //插入數(shù)據(jù)庫 $data_array = array( 'category_id' => $category_id, 'pic_url' => "./upload/source/".date("Y/m/d")."/".$data['file_name'], 'addtime' => time(), 'is_stop' => 1, 'sort'=>0, 'gender' => $_POST["gender"], 'link_url'=>$_POST["link_url"], 'user_id' => intval($this->cur_user ['user_id']) ); $this->category_model->add_category_banner($data_array); } } $con_arr[] = " category_id= '{$category_id}'"; if ($gender=='' ) { $gender=0; } $con_arr[] = " gender= '{$gender}'"; $condition = implode( ' and ', $con_arr); $banner_list = $this->category_model->get_banner_all($condition); $this->tp->assign('banner_list', $banner_list); $this->tp->assign('base_url', base_url()); $this->tp->assign('gender', $gender); $this->tp->assign('category_id', $category_id); $this->tp->display("category/edit_list_page_banner.php"); }
config.php文件中有關縮略圖的配置項:
//大縮略圖的配置參數(shù) $config_big_thumb=array( 'image_library' => 'gd2',//gd2圖庫 'create_thumb' => true,//是否創(chuàng)建縮略圖 'maintain_ratio' => true, 'width' => 300,//縮略圖寬度 'height' => 300,//縮略圖的高度 'thumb_marker'=>"_300_300"//縮略圖名字后加上 "_300_300",可以代表是一個300*300的縮略圖 );
更多關于CodeIgniter相關內容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《php優(yōu)秀開發(fā)框架總結》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結》、《Zend FrameWork框架入門教程》、《php面向對象程序設計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于CodeIgniter框架的PHP程序設計有所幫助。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Jarak Wasserstein, juga dikenali sebagai Jarak EarthMover (EMD), ialah metrik yang digunakan untuk mengukur perbezaan antara dua taburan kebarangkalian. Berbanding dengan perbezaan tradisional KL atau perbezaan JS, jarak Wasserstein mengambil kira maklumat struktur antara pengedaran dan oleh itu mempamerkan prestasi yang lebih baik dalam banyak tugas pemprosesan imej. Dengan mengira kos pengangkutan minimum antara dua pengedaran, jarak Wasserstein dapat mengukur jumlah kerja minimum yang diperlukan untuk mengubah satu pengedaran kepada yang lain. Metrik ini mampu menangkap perbezaan geometri antara taburan, dengan itu memainkan peranan penting dalam tugas seperti penjanaan imej dan pemindahan gaya. Oleh itu, jarak Wasserstein menjadi konsep

Pembinaan semula imej resolusi super ialah proses menjana imej resolusi tinggi daripada imej resolusi rendah menggunakan teknik pembelajaran mendalam seperti rangkaian neural convolutional (CNN) dan rangkaian adversarial generatif (GAN). Matlamat kaedah ini adalah untuk meningkatkan kualiti dan perincian imej dengan menukar imej resolusi rendah kepada imej resolusi tinggi. Teknologi ini mempunyai aplikasi yang luas dalam banyak bidang, seperti pengimejan perubatan, kamera pengawasan, imej satelit, dsb. Melalui pembinaan semula imej resolusi super, kami boleh mendapatkan imej yang lebih jelas dan terperinci, membantu menganalisis dan mengenal pasti sasaran dan ciri dalam imej dengan lebih tepat. Kaedah pembinaan semula Kaedah pembinaan semula imej resolusi super secara amnya boleh dibahagikan kepada dua kategori: kaedah berasaskan interpolasi dan kaedah berasaskan pembelajaran mendalam. 1) Kaedah berasaskan interpolasi Pembinaan semula imej resolusi super berdasarkan interpolasi

VisionTransformer (VIT) ialah model klasifikasi imej berasaskan Transformer yang dicadangkan oleh Google. Tidak seperti model CNN tradisional, VIT mewakili imej sebagai jujukan dan mempelajari struktur imej dengan meramalkan label kelas imej. Untuk mencapai matlamat ini, VIT membahagikan imej input kepada berbilang patch dan menggabungkan piksel dalam setiap patch melalui saluran dan kemudian melakukan unjuran linear untuk mencapai dimensi input yang dikehendaki. Akhir sekali, setiap tampalan diratakan menjadi satu vektor, membentuk urutan input. Melalui mekanisme perhatian kendiri Transformer, VIT dapat menangkap hubungan antara tampalan yang berbeza dan melakukan pengekstrakan ciri dan ramalan klasifikasi yang berkesan. Perwakilan imej bersiri ini ialah

Algoritma Scale Invariant Feature Transform (SIFT) ialah algoritma pengekstrakan ciri yang digunakan dalam bidang pemprosesan imej dan penglihatan komputer. Algoritma ini telah dicadangkan pada tahun 1999 untuk meningkatkan pengecaman objek dan prestasi pemadanan dalam sistem penglihatan komputer. Algoritma SIFT adalah teguh dan tepat dan digunakan secara meluas dalam pengecaman imej, pembinaan semula tiga dimensi, pengesanan sasaran, penjejakan video dan medan lain. Ia mencapai invarian skala dengan mengesan titik utama dalam ruang skala berbilang dan mengekstrak deskriptor ciri tempatan di sekitar titik utama. Langkah-langkah utama algoritma SIFT termasuk pembinaan ruang skala, pengesanan titik utama, kedudukan titik utama, penetapan arah dan penjanaan deskriptor ciri. Melalui langkah-langkah ini, algoritma SIFT boleh mengekstrak ciri yang teguh dan unik, dengan itu mencapai pemprosesan imej yang cekap.

Pemulihan foto lama ialah kaedah menggunakan teknologi kecerdasan buatan untuk membaiki, menambah baik dan menambah baik foto lama. Menggunakan penglihatan komputer dan algoritma pembelajaran mesin, teknologi ini secara automatik boleh mengenal pasti dan membaiki kerosakan dan kecacatan pada foto lama, menjadikannya kelihatan lebih jelas, lebih semula jadi dan lebih realistik. Prinsip teknikal pemulihan foto lama terutamanya merangkumi aspek-aspek berikut: 1. Penyahnosian dan penambahbaikan imej Apabila memulihkan foto lama, foto itu perlu dibunyikan dan dipertingkatkan terlebih dahulu. Algoritma dan penapis pemprosesan imej, seperti penapisan min, penapisan Gaussian, penapisan dua hala, dsb., boleh digunakan untuk menyelesaikan masalah bunyi dan bintik warna, dengan itu meningkatkan kualiti foto. 2. Pemulihan dan pembaikan imej Dalam foto lama, mungkin terdapat beberapa kecacatan dan kerosakan, seperti calar, retak, pudar, dsb. Masalah ini boleh diselesaikan dengan algoritma pemulihan dan pembaikan imej

Jawapan: Ya, Golang menyediakan fungsi yang memudahkan pemprosesan muat naik fail. Butiran: Jenis MultipartFile menyediakan akses kepada metadata dan kandungan fail. Fungsi FormFile mendapat fail tertentu daripada permintaan borang. Fungsi ParseForm dan ParseMultipartForm digunakan untuk menghuraikan data borang dan data borang berbilang bahagian. Menggunakan fungsi ini memudahkan proses pemprosesan fail dan membolehkan pembangun menumpukan pada logik perniagaan.

Rangkaian neural konvolusi berfungsi dengan baik dalam tugasan menghilangkan imej. Ia menggunakan penapis yang dipelajari untuk menapis bunyi dan dengan itu memulihkan imej asal. Artikel ini memperkenalkan secara terperinci kaedah denoising imej berdasarkan rangkaian neural convolutional. 1. Gambaran Keseluruhan Rangkaian Neural Konvolusi Rangkaian saraf konvolusi ialah algoritma pembelajaran mendalam yang menggunakan gabungan berbilang lapisan konvolusi, lapisan gabungan dan lapisan bersambung sepenuhnya untuk mempelajari dan mengelaskan ciri imej. Dalam lapisan konvolusi, ciri tempatan imej diekstrak melalui operasi konvolusi, dengan itu menangkap korelasi spatial dalam imej. Lapisan pengumpulan mengurangkan jumlah pengiraan dengan mengurangkan dimensi ciri dan mengekalkan ciri utama. Lapisan bersambung sepenuhnya bertanggungjawab untuk memetakan ciri dan label yang dipelajari untuk melaksanakan pengelasan imej atau tugas lain. Reka bentuk struktur rangkaian ini menjadikan rangkaian neural konvolusi berguna dalam pemprosesan dan pengecaman imej.

Bagaimana untuk melaksanakan muat naik fail menggunakan gRPC? Buat definisi perkhidmatan sokongan, termasuk permintaan dan mesej respons. Pada klien, fail yang hendak dimuat naik dibuka dan dibahagikan kepada beberapa bahagian, kemudian distrim ke pelayan melalui aliran gRPC. Di bahagian pelayan, ketulan fail diterima dan disimpan ke dalam fail. Pelayan menghantar respons selepas muat naik fail selesai untuk menunjukkan sama ada muat naik berjaya.
