2012-04-03 17 views
3

Spiegeln Ich suche das Web für diese und ich kann nicht finden, was ich brauche.Wie Bild horizontal und vertikal mit PHP

Ich habe ein Bild (in oder außerhalb Server) und ich brauche, um das Bild waagerechten oder vertikal mit PHP zu kippen, und zeigen Sie es dies wie:

<? 
$img = $_GET['img']; 
header('Content-type: image/png'); 
/* 
do the flip work 
*/ 
imagepng($img, NULL); 
imagedestroy($tmp_img); 
?> 

Wie kann ich es tun? Danke euch allen.

+1

Wer erinnert sich an die [Upsidedownnetternet] (http://www.ex-parrot.com/~pete/upside-down-ternet.html)? :-) – ghoti

+0

Sie haben nicht sehr gesucht: https://www.google.de/search?sourceid=chrome&ie=UTF-8&q=php+gd+flip#sclient=psy-ab&hl=de&q=php% 20gd% 20flip% 20vertically & oq = php% 20gd% 20flip% 20vert & aq = 1w & aqi = qw & aql = 1 & gs_l = serp.11.1.33i21l2.6417l7753l0l9632l7l0l0l0l0l94l391l7l8l0.efis.1. & Pbx = 1 & bav = on.2, or.r_gc.r_pw.r_cp. , cf.osb & fp = 8a49b837bfe4a3e5 & biw = 1680 & bih = 935 & pf = p & pdl = 300 – BenOfTheNorth

+0

Nun, ich habe gesucht und ich habe so etwas gefunden [link] (http://www.planetsourcycle.com/vb/scripts/ShowCode.asp?txtCodeId=1876&lngWId = 8) aber'imagesx() 'und/oder imagesy()' funktionierten nicht, aber ich reparierte es mit'list ($ w, $ h, $ type, $ attr) = getimagesize ($ image); 'aber dann 'imagecopy() 'hat auch nicht funktioniert es gibt mir einen Fehler'PHP Warnung: Falsche Parameteranzahl für imagecopyresampled() in /home2/inplenon/public_html/test/t-shirt/index.php' –

Antwort

10

Sie können dies auch mit der imagecopy Familie erreichen von Funktionen, wenn ImageMagick nicht verfügbar ist. Siehe this example:

function ImageFlip ($imgsrc, $mode) 
{ 

    $width      = imagesx ($imgsrc); 
    $height      = imagesy ($imgsrc); 

    $src_x      = 0; 
    $src_y      = 0; 
    $src_width     = $width; 
    $src_height     = $height; 

    switch ($mode) 
    { 

     case '1': //vertical 
      $src_y    = $height -1; 
      $src_height   = -$height; 
     break; 

     case '2': //horizontal 
      $src_x    = $width -1; 
      $src_width   = -$width; 
     break; 

     case '3': //both 
      $src_x    = $width -1; 
      $src_y    = $height -1; 
      $src_width   = -$width; 
      $src_height   = -$height; 
     break; 

     default: 
      return $imgsrc; 

    } 

    $imgdest     = imagecreatetruecolor ($width, $height); 

    if (imagecopyresampled ($imgdest, $imgsrc, 0, 0, $src_x, $src_y , $width, $height, $src_width, $src_height)) 
    { 
     return $imgdest; 
    } 

    return $imgsrc; 

} 
+0

'PHP Warnung: imagecopyresampled(): mitgeliefertes Argument ist keine gültige Bildressource 'es gibt mir diesen Fehler. Auch'imagesx() 'und/oder imagesy()' funktionierten nicht, aber ich reparierte es mit'list ($ w, $ h, $ type, $ attr) = getimagesize ($ image); '... irgendeine Idee ? –

+0

Was genau senden Sie in der Abfragezeichenfolge mit Ihrem $ Img = $ _GET ['img']; '... Sie müssen das Bild in ein richtiges Bildhandle laden. Möglicherweise "imagecreatefrompng", wenn Sie einen Dateinamen haben. Andernfalls, wenn Sie versuchen, eine Datei hochzuladen, schauen Sie in die Dokumentation zum Hochladen von PHP-Dateien. –

+0

Ich werde es überprüfen danke. –

5

Mit ImageMagick und die flipImage() und flopImage() Verfahren ist das folgende Beispiel aus devzone.zend.com:

<?php 
try { 
    // initialize object 
    $image = new Gmagick(); 

    // read image file 
    $image->readImage('gallery/original.jpg'); 

    // flip image vertically 
    $image->flipImage(); 

    // write new image file 
    $image->writeImage('gallery/new_1.jpg'); 

    // revert 
    $image->flipImage(); 

    // flip image horizontally 
    $image->flopImage(); 

    // write new image file 
    $image->writeImage('gallery/new_2.jpg'); 

    // free resource handle 
    $image->destroy(); 
} catch (Exception $e) { 
    die ($e->getMessage()); 
} 
?> 

mit den folgenden Ergebnissen:

enter image description here

+0

Ich habe versucht, ImageMagick nicht zu verwenden ... gibt es nicht einen anderen Weg? –

+1

Sie haben diese Einschränkung in Ihrer Frage nicht erwähnt. Es gibt immer einen anderen Weg. – ghoti

2

Für PHP> = 5.5 Sie die imageflip GD native Funktion nutzen können.

Verwandte Themen