• 解決済 gabgab

    (@gabgab)


    画像の回転についてはいくつかトピックがありましたが、それらを見ても解決に至らなかったので、質問させていただきます。

    PHP Version 5.1.6
    wordpress Version 2.7.1
    ktai_entry Version 0.8.11
    を使用中で主にiPhoneからメールを送り投稿しているクライアントから、添付画像が横向きに回転して表示される。と連絡をいただきました。
    撮影時の解像度はわかりませんがおそらくiPhoneを縦向きで撮影していると思われます。

    そこで、ktai_entryの画像サイズを認識して画像を自動回転させるという機能を使いたいのですが、うまく機能しません。テストでの環境はPHPとWPのバージョンは同じですが、投稿用の端末はauのIS04で、撮影時解像度はVGAです。
    以下にこれまで試した事を記載します。

    まずはじめに、プラグイン制作者様のドキュメントを参考にmy-hacks.phpを使って実装しようと試みました。(2.8から非推奨ですが、2.7.1なのでまだいけるかと思ったので)

    <?php
    ke_rotate_vga($rotations, $rot_direction, $images) {
    	if (count($rotations) && function_exists('imagecreatefromstring')) {
    		for ($i = 0 ; $i < count($rotations) ; $i++) {
    			if (! isset($rotations[$i]) || $rotations[$i] != 'N') {
    				continue;
    			}
    			$image = imagecreatefromstring($images[$i]['body']);
    			if (! $image) {
    				continue;
    			}
    			$width  = imagesx($image);
    			$height = imagesy($image);
    			if ($width > $height && $width >= 640 && $height >= 480) {
    				$rotations[$i] = 'R';
    				// $rotations[$i] = 'L';
    			}
    		}
    	}
    	return $rotations;
    }
    add_filter('image_rotate/ktai_entry.php', 'ke_rotate_vga', 10, 3);
    ?>

    サイトからコピペして、my-hacks.phpを使用テーマのindex.phpと同じ階層に入れてから投稿しましたが、縦向きで撮った画像は横向きのままでした。

    次に過去のフォーラムにあった記事から、制作者様のコメントより

    post.php の 841 行目、回転コマンドを解釈する部分で、デフォルトの回転コマンドを ‘N’ と定義している部分
    $rotations = array_fill(0, $num_images, ‘N’);
    を ‘R’ にしてしまう手があります。

    というのを試しました。
    これは縦で撮った画像は縦で表示されましたが、横向きで撮った場合も回転して表示されてしまったため、結局あまり実用的ではないと判断しました。

    そして、最後に試したのがプラグインとしてこの機能を実装する方法です。

    <?php
    /*
    Plugin Name: my-hacks.php
    Plugin URI: http://
    Description: my-hacks.php ? replacement since WordPress 2.8
    Author: DU
    Version: 0.1
    Author URI: http://
    */
    function ke_rotate_vga($rotations, $rot_direction, $images) {
    if (count($rotations) && function_exists(‘imagecreatefromstring’)) {
    for ($i = 0 ; $i < count($rotations) ; $i++) {
    if (! isset($rotations[$i]) || $rotations[$i] != ‘N’) {
    continue;
    }
    $image = imagecreatefromstring($images[$i]['body']);
    if (! $image) {
    continue;
    }
    $width = imagesx($image);
    $height = imagesy($image);
    if ($width > $height && $width >= 640 && $height >= 480) {
    $rotations[$i] = ‘R’;
    // $rotations[$i] = ‘L’;
    }
    }
    }
    return $rotations;
    }
    add_filter(‘image_rotate/ktai_entry.php’, ‘ke_rotate_vga’, 10, 3);
    ?>

    プラグインとして機能させる方法を紹介しているサイトからのコピペになりますが、これもプラグインフォルダに入れ、有効化した後に同様に投稿してみましたが、縦向きで撮った画像は横向きのままでした。

    以上がこれまでに試してみたことですが、それぞれの手順で間違などはないでしょうか?
    もし、これ以外でも方法があれば教えていただきたいと思います。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • 書かれている内容から察するに、なぜ基本(ROT:RまたはROT:Lなどの画像回転コマンド)は試さないのですか?

    トピック投稿者 gabgab

    (@gabgab)

    chestnut_jp様ありがとうございます。

    上記のとおり、クライアントへの対応になりまして、簡単なコマンド入力であっても難しく感じてしまったり、覚えてくれないということからコマンド入力以外の方法を探していました。

    トピック投稿者 gabgab

    (@gabgab)

    解決したので報告です。

    単純なミスでシングルクォーテションが全角になっていただけでした。
    よく確認せずに投稿してしまいすみません。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「ktai_entry 投稿した画像が回転してしまう」には新たに返信することはできません。