2016-04-08 7 views
0

写真をアップロードできるサイトがあります。肖像画で撮影すると、左側に90度の風景が表示されるため、右側に90度回転する必要があります。私のスクリプト:exifオリエンテーションを読んでいるPHPが8(90度)の間に '...'を返します

  $uploadedfile = $_FILES['file']['tmp_name']; 
      $rotated = false; 
      $exif = exif_read_data($uploadedfile); 
      $orientation = $exif['IFD0']['Orientation']; 
      switch($orientation) { 
      case 3: 
       $src = imagerotate($src, 180, 0); 
       break; 
      case 6: 
       $src = imagerotate($src, -90, 0); 
        $rotated = true; 
       break; 
      case 8: 
       $src = imagerotate($src, 90, 0); 
       $rotated = true; 
       break; 
      } 

しかし、$ orientationの値は '...'です。 私はsamsung galaxy s6から写真をアップロードしていますが、銀河s3の写真は同じ向きが間違っています。 誰かがこの問題を私に助けてくれますか?

+0

であなたの$orientationを交換する必要がありますが、あなたのアップロードのコードを表示します。あなたが間違っている大きなチャンス。 – greenapps

答えて

2
php > $exif = exif_read_data('20160305_073024.jpg'); 
php > print_r($exif); 
Array 
(
    [FileName] => 20160305_073024.jpg 
    [FileDateTime] => 1458474774 
    [FileSize] => 148254 
    [FileType] => 2 
    [MimeType] => image/jpeg 
    [SectionsFound] => ANY_TAG, IFD0, EXIF 
    [COMPUTED] => Array 
     (
      [html] => width="600" height="860" 
      [Height] => 860 
      [Width] => 600 
      [IsColor] => 1 
      [ByteOrderMotorola] => 1 
      [ApertureFNumber] => f/2.8 
      [UserComment] => User comments 
      [UserCommentEncoding] => ASCII 
     ) 

    [Make] => SAMSUNG 
    [Model] => GT-N7100 
    [Orientation] => 1 
    [XResolution] => 72/1 
    [YResolution] => 72/1 
    [ResolutionUnit] => 2 
    [Software] => N7100XXUFNG4 
    [DateTime] => 2016:03:05 07:30:24 
    [Exif_IFD_Pointer] => 190 
    [ExposureTime] => 1/100 
    [FNumber] => 14/5 
    [ExposureProgram] => 3 
    [ISOSpeedRatings] => 100 
    [ExifVersion] => 0220 
    [DateTimeOriginal] => 2016:03:05 07:30:24 
    [DateTimeDigitized] => 2016:03:05 07:30:24 
    [ComponentsConfiguration] => 
    [ExposureBiasValue] => 0/1 
    [MeteringMode] => 2 
    [FocalLength] => 5/2 
    [UserComment] => ASCIIUser comments 
    [FlashPixVersion] => 0100 
    [ColorSpace] => 1 
    [ExifImageWidth] => 600 
    [ExifImageLength] => 860 
    [ExposureMode] => 0 
    [WhiteBalance] => 0 
    [SceneCaptureType] => 0 
    [ImageUniqueID] => S5K6A3 
) 

exif_read_dataで返される配列にはIFD0キーがありません。 ので、あなたが

$orientation = $exif['Orientation'];

関連する問題