2017-08-01 4 views
0

J'ai deux fonctions dans deux classes séparées, les deux ont un traitement Imagick. Je souhaite que le premier Imagick redimensionne l'image, puis l'envoie à une autre instance Imagick sans l'enregistrer en tant que fichier.transmettre la sortie Imagick à une autre fonction avec Imagick (pas d'enregistrement)

Dans la première classe culture

  function cropimage($inputfile){ 
      $image = new Imagick($inputfile); 
      $image->cropimage($w, $h, $x, $y); 
      # and here I wish to return some $image->output???() which let me to use it in second class 
     return ????; 
     } 

Et dans la deuxième classe redimensionnez

 function resizeImage(){ 
     $crop = new crop(); // my first class instance 
     $image_to_work = $crop->cropimage($this->image); // output from first class 
     $image = new Imagick($image_to_work); 

     $image->resizeImage($width, $height); 
     $image->writeImage($outputfile); 
    } 

Toutes les idées? Merci d'avance. Cheers

Répondre

-2

Utiliser des sessions. Commencez par vous assurer que vous avez session_start() dans chaque script qui utilisera des sessions. Ensuite, faites quelque chose comme $_SESSION['image'] = $image et votre script suivant peut accéder à cette variable de session.

0

Les images peuvent être passés en tant que variables

function cropimage($inputfile) { 
    $image = new Imagick($inputfile); 
    $image->cropimage($w, $h, $x, $y); 

    return $image; 
} 

function resizeImageAndSave($image) { 
     $image->resizeImage($width, $height); 
     $image->writeImage($outputfile); 
} 

$image = cropimage("./test.png"); // return the image 
resizeImageAndSave($image); // pass it into the next function 
+0

S'il vous plaît mettre à jour votre question, plutôt que d'utiliser des commentaires, code est illisible en eux. – Danack