Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/04/2006, 16h42   #1
Membre à l'essai
 
Homme
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 24
Points : 24
Par défaut [ImageMagick] Convertir des jpeg, gif en png

Bonjour,

j'ai trouvé dans les sources php ce bout de code:
Code :
1
2
3
4
5
6
7
8
9
   /**
   * Enregistre l'image sur le disque en png
   * @param String Le chemin de l'image sans l'extension
   * @todo Prevoir que l'utilisateur fournisse une extension
   */
   public function saveAs($name)
   {
      imagepng($this->img,$name.".png");   
   }
Si j'upload une image .jpg et que je veux le sauvegarder en .png

La fonction ci-dessus le fait ?
WeDgEMasTeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 16h50   #2
Membre éclairé
 
Avatar de johweb
 
Inscription : décembre 2003
Messages : 332
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : décembre 2003
Messages : 332
Points : 316
Points : 316
As-tu testé avant de demander..... ? ^^
johweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 17h07   #3
Membre à l'essai
 
Homme
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 24
Points : 24
non...

j'avoue que j'ai la flemme de créer une page test :p

bon je vais essayer de faire çà alors
WeDgEMasTeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 17h14   #4
Membre éclairé
 
Avatar de johweb
 
Inscription : décembre 2003
Messages : 332
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : décembre 2003
Messages : 332
Points : 316
Points : 316
Citation:
Envoyé par WeDgEMasTeR
bon je vais essayer de faire çà alors
Je pense que c'est une bonne idée ^^
johweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 17h45   #5
Membre à l'essai
 
Homme
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 24
Points : 24
j'arrive pas a testé...

j'ai écris çà:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
function saveAs($name)
{
   imagepng($this->img,$name.".png");   
}
 
if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'images/cartes'; // dossier où sera déplacé le fichier
 
    $tmp_file = $_FILES['fichier']['tmp_name'];
 
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }
 
    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];
 
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
 
    // on copie le fichier dans le dossier de destination
    $name_file = saveAs($_FILES['fichier']['name']);
 
    if( !$name_file )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
 
    echo "Le fichier a bien été uploadé";
}
 
?>
 
<form method="post" enctype="multipart/form-data" action="test.php">
<p>
<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Uploader">
</p>
</form>
il y a un soucis avec la function,
je m'y connais pas trop en manipulation d'image, si quelqu'un peu me donné un coup de pouce
WeDgEMasTeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 21h45   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Ta fonction semble effectuer un bête changement de nom du fichier, pas un enregistrement à proprement parler. C'est une technique fourbe car tu auras effectivement un fichier avec une extension .png mais le type MIME du fichier sera encore JPEG, en réalité.

Je te recommande d'utiliser la bibliothèque GD. Cela se fait en 6 lignes de code maximum.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 22h27   #7
Membre à l'essai
 
Homme
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 24
Points : 24
Oui j'ai bien l'impression que sa ne convertis pas mais renome en quelques sorte.

J'ai regardé un peu avec la bibliotheque GD, mais j'y arrive pas trop.
J'aurai besoin d'un exemple.

Parceque dans leur fonction ils attendent toujours en parametre un fichier,
mais je pense pas que mettre "image.jpg" marche, on dirait plutot qu'il faut faire un $fichier = fopen("image.jpg");

j'ai vraiment du mal, et je trouve aucun script php qui fasse cette convertion, pour me basé dessus...

dur dur
WeDgEMasTeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 22h57   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Il te faut faire un truc dans ce genre (script simplifié, sans tests de sécurité) :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$filename = 'filename.jpg';
$filesize = getimagesize($filename);
 
$source = imagecreatefromjpeg($filename);
$destination = imagecreatetruecolor($filesize[0], $filesize[1]);
imagecopy($source, $destination, 0, 0, 0, 0, $filesize[0], $filesize[1]);
 
header('Content-type: image/png');
imagepng($destination, 'filename.png');
 
?>
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 23h30   #9
Membre à l'essai
 
Homme
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 24
Points : 24
Ok, je comprend un peu mieux

j'ai juste fait une tite correction:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

$filename = 'filename.jpg';
$filesize = getimagesize($filename);

$source = imagecreatefromjpeg($filename);
$destination = imagecreatetruecolor($filesize[0], $filesize[1]);
imagecopy($destination, $source, 0, 0, 0, 0, $filesize[0], $filesize[1]);

header('Content-type: image/png');
imagepng($destination, 'filename.png');

?>
Jvais pouvoir me débrouiller avec çà!

merci beaucoup
WeDgEMasTeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2006, 23h45   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Euh, ouais, désolé pour la coquille
Pour que ça fasse les 6 lignes annoncées, je pense qu'on peut zapper l'appel à la fonction header()
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 10h36   #11
Membre à l'essai
 
Homme
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 24
Points : 24
Mais je peux juste utiliser ton code, pour convertir en PNG ?

Mes membres font un upload, et je veux que cela sauvegarde en PNG leur image.

Donc si le formulaire est bien remplir, que c'est bien une image qu'il upload.
et bien je converti l'image et insert les données dans la BDD.

En gros sa suffit?
WeDgEMasTeR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h24.


 
 
 
 
Partenaires

Hébergement Web