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文件中有關(guān)縮略圖的配置項:
//大縮略圖的配置參數(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的縮略圖 );
更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于CodeIgniter框架的PHP程序設(shè)計有所幫助。

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Die Wasserstein-Distanz, auch EarthMover-Distanz (EMD) genannt, ist eine Metrik zur Messung der Differenz zwischen zwei Wahrscheinlichkeitsverteilungen. Im Vergleich zur herk?mmlichen KL-Divergenz oder JS-Divergenz berücksichtigt die Wasserstein-Distanz die Strukturinformationen zwischen Verteilungen und weist daher bei vielen Bildverarbeitungsaufgaben eine bessere Leistung auf. Durch die Berechnung der minimalen Transportkosten zwischen zwei Verteilungen ist die Wasserstein-Distanz in der Lage, den minimalen Arbeitsaufwand zu messen, der erforderlich ist, um eine Verteilung in eine andere umzuwandeln. Diese Metrik ist in der Lage, die geometrischen Unterschiede zwischen Verteilungen zu erfassen und spielt daher eine wichtige Rolle bei Aufgaben wie der Bilderzeugung und der Stilübertragung. Daher wird die Wasserstein-Distanz zum Konzept

Bei der superaufl?senden Bildrekonstruktion werden hochaufl?sende Bilder aus Bildern mit niedriger Aufl?sung mithilfe von Deep-Learning-Techniken wie Convolutional Neural Networks (CNN) und Generative Adversarial Networks (GAN) generiert. Das Ziel dieser Methode besteht darin, die Qualit?t und Detailgenauigkeit von Bildern zu verbessern, indem Bilder mit niedriger Aufl?sung in Bilder mit hoher Aufl?sung umgewandelt werden. Diese Technologie findet breite Anwendung in vielen Bereichen, beispielsweise in der medizinischen Bildgebung, überwachungskameras, Satellitenbildern usw. Durch die hochaufl?sende Bildrekonstruktion k?nnen wir klarere und detailliertere Bilder erhalten, die dabei helfen, Ziele und Merkmale in Bildern genauer zu analysieren und zu identifizieren. Rekonstruktionsmethoden Hochaufl?sende Bildrekonstruktionsmethoden k?nnen im Allgemeinen in zwei Kategorien unterteilt werden: interpolationsbasierte Methoden und Deep-Learning-basierte Methoden. 1) Interpolationsbasierte Methode Hochaufl?sende Bildrekonstruktion basierend auf Interpolation

VisionTransformer (VIT) ist ein von Google vorgeschlagenes Transformer-basiertes Bildklassifizierungsmodell. Im Gegensatz zu herk?mmlichen CNN-Modellen stellt VIT Bilder als Sequenzen dar und lernt die Bildstruktur durch Vorhersage der Klassenbezeichnung des Bildes. Um dies zu erreichen, unterteilt VIT das Eingabebild in mehrere Patches, verkettet die Pixel in jedem Patch über Kan?le und führt dann eine lineare Projektion durch, um die gewünschten Eingabeabmessungen zu erreichen. Schlie?lich wird jeder Patch zu einem einzelnen Vektor zusammengefasst, der die Eingabesequenz bildet. Durch den Selbstaufmerksamkeitsmechanismus von Transformer ist VIT in der Lage, die Beziehung zwischen verschiedenen Patches zu erfassen und eine effektive Merkmalsextraktion und Klassifizierungsvorhersage durchzuführen. Diese serialisierte Bilddarstellung ist

Der Scale Invariant Feature Transform (SIFT)-Algorithmus ist ein Merkmalsextraktionsalgorithmus, der in den Bereichen Bildverarbeitung und Computer Vision verwendet wird. Dieser Algorithmus wurde 1999 vorgeschlagen, um die Objekterkennung und die Matching-Leistung in Computer-Vision-Systemen zu verbessern. Der SIFT-Algorithmus ist robust und genau und wird h?ufig in der Bilderkennung, dreidimensionalen Rekonstruktion, Zielerkennung, Videoverfolgung und anderen Bereichen eingesetzt. Es erreicht Skaleninvarianz, indem es Schlüsselpunkte in mehreren Skalenr?umen erkennt und lokale Merkmalsdeskriptoren um die Schlüsselpunkte herum extrahiert. Zu den Hauptschritten des SIFT-Algorithmus geh?ren die Skalenraumkonstruktion, die Erkennung von Schlüsselpunkten, die Positionierung von Schlüsselpunkten, die Richtungszuweisung und die Generierung von Merkmalsdeskriptoren. Durch diese Schritte kann der SIFT-Algorithmus robuste und einzigartige Merkmale extrahieren und so eine effiziente Bildverarbeitung erreichen.

Bei der Restaurierung alter Fotos handelt es sich um eine Methode zur Nutzung künstlicher Intelligenz, um alte Fotos zu reparieren, aufzuwerten und zu verbessern. Mithilfe von Computer-Vision- und maschinellen Lernalgorithmen kann die Technologie Sch?den und Unvollkommenheiten in alten Fotos automatisch erkennen und reparieren, sodass diese klarer, natürlicher und realistischer aussehen. Die technischen Prinzipien der Restaurierung alter Fotos umfassen haupts?chlich die folgenden Aspekte: 1. Bildrauschen und -verbesserung Bei der Wiederherstellung alter Fotos müssen diese zun?chst entrauscht und verbessert werden. Bildverarbeitungsalgorithmen und -filter wie Mittelwertfilterung, Gau?sche Filterung, bilaterale Filterung usw. k?nnen zur L?sung von Rausch- und Farbfleckproblemen eingesetzt werden, wodurch die Qualit?t von Fotos verbessert wird. 2. Bildwiederherstellung und -reparatur Bei alten Fotos k?nnen einige M?ngel und Sch?den wie Kratzer, Risse, Ausbleichen usw. auftreten. Diese Probleme k?nnen durch Bildwiederherstellungs- und Reparaturalgorithmen gel?st werden

Antwort: Ja, Golang bietet Funktionen, die das Hochladen von Dateien vereinfachen. Details: Der MultipartFile-Typ bietet Zugriff auf Dateimetadaten und -inhalte. Die FormFile-Funktion ruft eine bestimmte Datei aus der Formularanforderung ab. Die Funktionen ParseForm und ParseMultipartForm werden zum Parsen von Formulardaten und mehrteiligen Formulardaten verwendet. Die Verwendung dieser Funktionen vereinfacht den Dateiverarbeitungsprozess und erm?glicht Entwicklern, sich auf die Gesch?ftslogik zu konzentrieren.

Faltungs-Neuronale Netze eignen sich gut für Aufgaben zur Bildrauschunterdrückung. Es nutzt die erlernten Filter, um das Rauschen zu filtern und so das Originalbild wiederherzustellen. In diesem Artikel wird die Methode zur Bildentrauschung basierend auf einem Faltungs-Neuronalen Netzwerk ausführlich vorgestellt. 1. überblick über das Convolutional Neural Network Das Convolutional Neural Network ist ein Deep-Learning-Algorithmus, der eine Kombination aus mehreren Faltungsschichten, Pooling-Schichten und vollst?ndig verbundenen Schichten verwendet, um Bildmerkmale zu lernen und zu klassifizieren. In der Faltungsschicht werden die lokalen Merkmale des Bildes durch Faltungsoperationen extrahiert und so die r?umliche Korrelation im Bild erfasst. Die Pooling-Schicht reduziert den Rechenaufwand durch Reduzierung der Feature-Dimension und beh?lt die Hauptfeatures bei. Die vollst?ndig verbundene Schicht ist für die Zuordnung erlernter Merkmale und Beschriftungen zur Implementierung der Bildklassifizierung oder anderer Aufgaben verantwortlich. Das Design dieser Netzwerkstruktur macht das Faltungs-Neuronale Netzwerk für die Bildverarbeitung und -erkennung nützlich.

Wie implementiert man den Datei-Upload mit gRPC? Erstellen Sie unterstützende Servicedefinitionen, einschlie?lich Anforderungs- und Antwortnachrichten. Auf dem Client wird die hochzuladende Datei ge?ffnet, in Bl?cke aufgeteilt und dann über einen gRPC-Stream an den Server gestreamt. Auf der Serverseite werden Dateibl?cke empfangen und in einer Datei gespeichert. Der Server sendet nach Abschluss des Datei-Uploads eine Antwort, um anzugeben, ob der Upload erfolgreich war.
