クロノス・クラウン - 記事検索

ツイート @rutenさんをフォロー
クロクロ ショップ 本、ゲーム、同人誌他を販売
クロクロ ツールズ 便利なWebアプリを多数収録
IT用語大辞典 IT用語を解説
ソフトウェア
めもりーくりーなー Winのメモリーをお掃除するソフト
Novel Supporter 小説推敲補助ソフト
PCソフト 便利なソフトを多数公開
Webサービス 便利で楽しいサービス多数
レトロゲームファクトリー レトロゲーム移植会社のお仕事小説
#電書ハック 電子書籍編集部のお仕事小説
顔貌売人 IT系ミステリ
裏切りのプログラム IT系ミステリ
ゲーム
Little Bit War Switch向け高速RTS
TinyWar high-speed 1ステージ数分の8bit風RTS
EX リバーシ 変形盤面、ステージ多数
PuzzleAndGame.com ブラウザで遊べるパズルやゲーム
no link
2009年08月17日 15:19:52
 ちょっと前に少しはまったことです。

 ネットで情報を調べて、そのものズバリの情報があまりなかったので、同じことではまる人がいそうなのでメモしておきます。

 perlの画像処理でよく使う「ImageMagick」というライブラリがあります。この「ImageMagick」には、領域の切り出しに使う「Crop」という命令があります。

 この「Crop」ですが、日本語に訳すと、「切り取り」とか「切り出し」という意味になります。写真などをトリミングすることも「Crop」と言います。

 この「Crop」による、内部処理と原点の扱いについて、まとめておきます。

 以下、ImageMagickの6.2.8での挙動です。



● 「Crop」の挙動

 この「Crop」を、画像を示す変数「$img」に対して、以下のように使ったとします。

$img->Crop(width=>100, height=>150, x=>10, y=>20);

 すると、この「$img」は、横100、高さ150の画像として、以後扱えます。

 この時、注意しなければならないのは、この「Crop」を行った画像の原点は、「横100、高さ150の領域の左上」ではないということです。

 「横100、高さ150の領域の左上」に対して「X方向-10、Y方向-20」の位置が原点になります。

 つまり、元の画像の原点の位置が、「Crop」後も維持されます。

 図で描くと、以下のような感じです。

元の画像(原点はここのまま)

┏━━━━━┓
┃┌───┐┃←Cropした画像
┃│絵絵絵│┃
┃└───┘┃
┗━━━━━┛



● 「Crop」の内部処理

 なぜならば、この「Crop」という命令は、画像の画素データを、新しく切り出す命令ではないからです。

 「Crop」は、画像描画の際の、「処理領域を決めるだけ」の命令だからです。この命令は、元の画像にマスクを掛けて、その内部だけを、他の画像のように振舞わせます。

 「Crop」は、元の画像を維持したまま、「Crop領域」を作成します。



● 「Crop」の内部処理がよく分かるケース

 この「Crop」の内部処理の様子がよく分かるのは、「Crop」した画像を再度「Crop」した場合です。

 以下のように、「Crop」したあとに、再度「Crop」を行います。

$img->Crop(width=>100, height=>150, x=>10, y=>20);
$img->Crop(width=>100, height=>150, x=>60, y=>20);

 画像は欠けずに、そのまま新たな「Crop」領域が作成されます。

 なので、上記のような内部処理を行っているのだと推測できます。



● まとめ

 「Crop」の内部処理と、原点維持の挙動を理解していないと、たまに面倒な事態に出会います。

 ネットにあまり情報がないようでしたので、簡単にまとめておくことにしました。
最新20件 (全て見る)

柳井が執筆した本や商品 (全て見る

マンガでわかるJavaScriptのPromise
JavaScriptのPromiseをマンガで解説。無料。
レトロ風RPG 全コード
JSのレトロゲーム風RPGの全コードを掲載&解説。
タワーディフェンス 全コード
JSのタワーディフェンスの全コードを掲載&解説。
レトロゲームファクトリー
過去のゲームを最新機用に移植する会社のお仕事小説。新潮社より発売中。
#電書ハック
電子書籍編集部のお仕事小説。文藝春秋より発売中。
顔貌売人 ハッカー探偵 鹿敷堂桂馬
シリーズ第2弾。文藝春秋より発売中。
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
松本清張賞の最終候補に残った拙作小説(デビュー作)。

サイト目次

PCソフト/Webアプリ/ゲーム

記事/マンガ

柳井の同人活動

開発

携帯・スマホ

アナログ・ゲーム

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について