忘れました。これを投稿しました。オリエンテーションの問題を処理する方法を考え出したので、分かち合うと思った。今はシンプルだね。私はCodeigniterを使ってこのプロジェクトを作り直しました。 CIは素晴らしく、時間を大幅に節約することができますが、私は初めてこれをすべて自分で書きました。私は確かにそのように多くを学んだ。
最初にファイルがjpgの場合は、PELというEXIFデータを取得します。
$new
は、向きを確認するためにアップロードされたファイルです。
$this->load->library('pel/PelJpeg');
if($ext == 'jpg'){
$pdw= new PelDataWindow(file_get_contents($new));
if(PelJpeg::isValid($pdw)){
$input_jpg = new PelJpeg($new);
$exif = $input_jpg->getExif();
}
}
その後EXIFが存在する場合は、オリエンテーション値を取得し、switchステートメントを介して実行、それに応じて回転させ、その後、姿勢値をリセットします。私はimage_mooとCodeigniterを使用していますが、これは明らかに画像操作ライブラリを使用するように変更することができます。
これらすべての場合のステートメントはそこにする必要がある場合、私は正直わからないんだけど、私はいくつかのEXIF情報を含まれ、それらなしでスクリプトを爆破しまうのjpgのとトラブルに走り続けました。
if($exif !== NULL){
if($tiff = $exif->getTiff()){
if($ifd0 = $tiff->getIfd()){
if($orient = $ifd0->getEntry(PelTag::ORIENTATION)){
$this->image_moo->load($new);
//find the orientation value from the orientation tag. May be a better way, but this works for me.
$orientation = str_replace(' ', '', $orient);
//The orientation value from the orientation tag is after 'Value:'
if (($tmp = strstr($orientation, 'Value:')) !== false) {
$str = substr($tmp, 6, 1);
}
switch ($str)
{
// up is pointing to the right
case 8:
$this->image_moo->rotate(90);
$orient->setValue(1);
break;
// image is upside-down
case 3:
$this->image_moo->rotate(180);
$orient->setValue(1);
break;
// up is pointing to the left
case 6:
$this->image_moo->rotate(270);
$orient->setValue(1);
break;
// correct orientation
case 1:
break;
}
$this->image_moo->save($new,TRUE);
if ($this->image_moo->errors) print $this->image_moo->display_errors();
$this->image_moo->clear();
}
}
}
}
これは、同じ問題で苦労している他の人にとって役に立ちます。 改善が見られるものがあれば教えてください。しかし、これは私のために素晴らしい作品です。あなたがiPhone/iPadの電気ショック療法からの画像を扱うための方法を持っている場合
マーク
は、ユーザーに送信する前に、それらをバックフリップ以上にユーザーのためのオプションを作るその反転した画像に、その後に反転されてデシベルでメモしておいてくださいあなたのフォールトユーザが間違った向きでイメージを追加するのではなく、ダウンロード/表示する前にオリエンテーションを選択してください。 –
私はこれを理解しようとしている最後の3日間を過ごしました。私が望むのは、アップロードされたiphone画像を見たいと思った方法で表示することだけです。コンピュータの画面(pcまたはmacbook)に正しく表示されるように画像を回転させると、それは問題ありませんが、iphone/ipadで見ると画像の向きがオフになります。私はちょうど私のサーバーに格納されている画像を表示するためにPHPを使用していますが、それほど単純ではない答えも見つけられません。私は何百もの記事を読んで、何百ものリンクをたどりました。 Googleは元の投稿を提供した(私はそれを投稿した20分前の金曜日)。私はIOSのプログラマになる必要がありますか? – Mark
OK、これは一時的なダクトテープソリューションですが、jhead -notを使用してexif rotationタグをクリアしました。誰かがより良い提案をしているなら、私はそれを聞いてみたい。 – Mark