Redimensionner une image à partir de la source et définir le chemin de téléchargement avec CodeIgniter
-
29-10-2019 - |
Question
Je construis une galerie d'images avec Codeigniter que tout se passe bien jusqu'à présent, mais j'ai eu une question rapide sur le redimensionnement des images.
Fondamentalement, je télécharge l'image source et je fais créer un ID puis le stockez dans ce chemin / uploads/$id/source.jpg. Ensuite, j'essaie de créer deux nouvelles images de l'image source, une vignette et une image moyenne avec un filigrane.
Lorsque vous utilisez la classe de manipulation d'image de Codeigniter, pouvez-vous définir un nom de fichier et un chemin de téléchargement? Et lorsque vous lui donnez l'image source, il modifie-t-il l'image source ou en fait-il une copie?
public function generateThumnail($source, $screenid) {
$config['image_library'] = 'gd2';
$config['source_image'] = "$source";
$config['maintain_ratio'] = TRUE;
$config['width'] = 75;
$config['height'] = 50;
//Not sure how I set the upload path and file name.
$this->load->library('image_lib', $config);
$this->image_lib->resize();
//TODO: Code to be added later
$this->image_lib->clear();
}
Le chemin de téléchargement et le nom du fichier ne sont pas inclus car je ne sais pas comment les ajouter. Existe-t-il un moyen de les ajouter?
La solution
Oui, vous pouvez spécifier un chemin de téléchargement mais en utilisant la classe de téléchargement de fichiers, pas la classe de manipulation d'image.
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
http://codeigniter.com/user_guide/libraries/file_uploading.html
Codeigniter créera une copie de l'image si vous le dites.
Créer une copie
La fonction de redimensionnement créera une copie du fichier image (et préservera l'original) si vous définissez un chemin et / ou un nouveau nom de fichier en utilisant cette préférence:
$config['new_image'] = '/path/to/new_image.jpg';
Notes concernant cette préférence:
- Si seul le nouveau nom d'image est spécifié, il sera placé dans le même dossier que l'original
- Si seul le chemin est spécifié, la nouvelle image sera placée dans la destination avec le même nom que l'original.
- Si le chemin et le nom de l'image sont spécifiés, il sera placé dans sa propre destination et compte tenu du nouveau nom.