2013-04-26 72 views
0

我想我的圖片複製到Amazon S3和它的偉大工程的二進制數據,如果我能夠從圖像像這樣傳遞二進制數據:我怎麼從imagecreatefromjpeg

$binary = file_get_contents($image_location); 

$response = $s3->create_object(AWS_S3_BUCKET, $image_name, array('body' => $binary, 'contentType' => $info['mime'], 'acl' => AmazonS3::ACL_PUBLIC)); 

哪有我從imagecreatefromjpeg得到相同的二進制數據?有更容易的方法嗎?

我目前得到的圖像資源是這樣的:

private function GetImageResource($image, $extension){ 
    switch($extension){ 
     case "jpeg": 
     case "jpg": 
      @ini_set('gd.jpeg_ignore_warning', 1); 
      $resource = imagecreatefromjpeg($image); 
      break; 
     case "gif": 
      $resource = imagecreatefromgif($image); 
      break; 
     case "png": 
      $resource = imagecreatefrompng($image); 
      break; 
    } 
    return $resource; 
} 

回答

1

表達「二進制數字」是不明確的,一切都是二進制這裏。

PHP函數imagecreatefromjpeg()打開一個文件,讀取其二進制數據(「jpeg image」),並將其轉換爲PHP使用的一些二進制表示(「php image」)。我不認爲你應該/應該將這些二進制數據傳遞給亞馬遜,當它期待一個「原始圖像」。如果你有一個php圖像並且想要使用$s3->create_object(),那麼我會將它重新轉換爲一些二進制圖像格式(例如imagejpeg())併發送該數據。