MagickWand afficher image sans l'enregistrer sur le disk

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : MagickWand afficher image sans l'enregistrer sur le disk

par zeus » 30 juil. 2007, 14:01

Modération :
Anonymous, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par Davee » 30 juil. 2007, 13:48

Merci Sékiltoyai.

par Sékiltoyai » 24 juil. 2007, 22:05

par Davee » 24 juil. 2007, 10:40

Dans ton code précédent, pourquoi utilises tu une fonction de la librairie GD, sur une variable ImageMagick ? Où est la logique ? Si tu veux traiter une ressource ImageMagick, utilises les fonctions de la librairie ImageMagick.
Ben la logique il y en a pas, c'est plutôt de la méconnaissance. Je pensais pas que ça poserait problème et j'ai pas encore trouvé l'équivalent image Magick de la fonction imagejpeg().
D'ailleur si quelqu'un connaissait ça m'arrangerait beaucoup. :)
Sinon, tu peux opter pour le PNG si tu veux remplacer le TIFF, après tu as peut être besoin de certaines fonctionnalités du TIFF, mais si tu n'as pas besoin d'une image vectorielle, PNG est meilleur
Le tif est une image que j'ai au départ et je ne peut pas en déroger il faut que je la merge avec une png et que je l'affiche en jpeg, gif, png ou autre image qui peut s'afficher sur une page Web.

Le tif est la seul raison pour laquelle j'ai utiliser Image Magick.

donc voilà faudrait que je puisse trouver l'équivalent Image Magick de la fonction imagejpeg().
Si quelqu'un sait.
Merci d'avance.

david.

par Sékiltoyai » 24 juil. 2007, 00:19

Dans ton code précédent, pourquoi utilises tu une fonction de la librairie GD, sur une variable ImageMagick ? Où est la logique ? Si tu veux traiter une ressource ImageMagick, utilises les fonctions de la librairie ImageMagick.
Sinon, tu peux opter pour le PNG si tu veux remplacer le TIFF, après tu as peut être besoin de certaines fonctionnalités du TIFF, mais si tu n'as pas besoin d'une image vectorielle, PNG est meilleur :)

par Davee » 23 juil. 2007, 19:58

bon, j'ai essayé sans les fonctions image Magick, en prenant un script sur un autre site
header ("Content-type: image/jpeg");

// On charge d'abord les images
$source = imagecreatefrompng("img.png"); // Le logo est la source
$destination = imagecreatefromjpeg("img02.tif"); // La photo est la destination

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, 0, 0, 0, 0, $largeur_source, $hauteur_source, 60);

// On affiche l'image de destination qui a été fusionnée avec le logo
imagejpeg($destination);
ça marche bien mais seulement si il n'y a pas de *.tif, hors j'aimerais mieux utiliser des tif ( c'est pas pour faire ch**r :) c'est simplement plus pratique pour moi)

voyez-vous une possibilité?

Merci d'avance.

David.

par Davee » 23 juil. 2007, 18:54

Bon j'avais pas fait gaffe à la connexion l'invité c'était donc moi. Voilà

à propos du header j'ai trouvé le truc maintenant les fonction image magick m'embête un peut
header ("Content-type: image/jpeg");

$source='Image.tif'; //seul image Magick accepte les tif pour le php
$sj=NewMagickWand ();
MagickreadImage ($sj,$source);
MagickSetFormat($sj,'jpg');

$blend='blend.png';
$bj=NewMagickWand();
MagickreadImage ($bj,$blend);

// Resize and Blend ----------------------------------------------
MagickResizeImage ($sj,500,500, MW_LanczosFilter,0.2);
MagickCompositeImage( $sj, $bj, MW_OverlayCompositeOp  ,0, 0 ) ;

imagejpeg($sj);

DestroyMagickWand ($sj);
DestroyMagickWand ($bj);
et voici l'erreur affiché.

Code : Tout sélectionner

<b>Warning</b>: imagejpeg(): supplied resource is not a valid Image resource in <b>E:\......\blendimg.php</b> on line <b>81</b><br />
La ligne 81 c'est la ligne suivante: 'imagejpeg($sj)'.
Je crois qu'il ne reconnait pas l'image. est-ce que c'est à cause des fonctions image Magick, ou j'ai oublié un truc , ou je sais pas ,...
(pour info j'ai essayé le code en enregistrant une image et ça marche)

Merci d'avance

david.

par Ryle » 23 juil. 2007, 18:20

Pour cela ton script php qui génère l'image doit simplement retournée le flux de l'image avec le header qui va bien (pour dire si c'est du jpeg, png, etc.) et un autre script (php ou page html) doit l'ouvrir comme s'il s'agissait d'une image en l'appelant avec une balise <img src="ton_script.php" ... /> :)

MagickWand afficher image sans l'enregistrer sur le disk

par Invité » 23 juil. 2007, 18:07

Bonjour

Je suis en plein dans les fonction imageMagick.
J'ai composé une iimage (resize, blend, et autres manipulation).
Mais pour pouvoir afficher une image il faut quelle soit enregistrée sur le disque.
Et je ne le souhaite pas.

Comment peut-on afficher une image sans quelle soit enregistrée au préalable?

Merci d'avance.

David.