14.4. 画像分割...

14.4.1. 概観

図16.334 画像分割フィルタの使用例

「画像分割」フィルタの使用例

元画像 (ガイドつき)

「画像分割」フィルタの使用例

画像分割フィルタ適用


画像分割... フィルタはHTMLページで感応する画像の作成を支援する単純で使い易いスクリプトです。 このフィルタは垂直と水平に置かれたガイドに沿って ギロチン コマンドのように画像を切り分け、 ひと揃いの断片画像を作成します。 また同時にこのフィルタは生成される画像ファイルを接ぎ合わせるHTMLの表組みコードをテキストファイルで生成します。 表組みのそれぞれの升目に画像の断片が入っている構造です。 あとはこのテキストファイルの内容をHTML文書に埋め込むことになります。

繰り返しますがこのフィルタは実にとても単純な支援ツールです。 書き出さ れるHTMLコードは精々次の例のようなものになります。

例16.1 単純な画像分割フィルタの出力例

<table cellpadding="0" border="0" cellspacing="0">
  <tr>
    <td><img alt="" src="slice_0_0.png"/></td>
    <td><img alt="" src="slice_0_1.png"/></td>
  </tr>
  <tr>
    <td><img alt="" src="slice_1_0.png"/></td>
    <td><img alt="" src="slice_1_1.png"/></td>
  </tr>
</table>
        

生成されるHTMLコード。 style属性は省かれている。


画像にガイド (見当線) がないときはフィルタは何も実行しません。 もちろんガイドが単に隠されているだけならフィルタは作動します。

[ヒント] ヒント

感応画像を作成するツールには、 より強力かつ高度な イメージマップ フィルタもあります。 (でもこれは随分と複雑ですが。)

14.4.2. フィルタの呼び出し方

画像ウィンドウのメニューよりフィルタウェブ画像分割...。 このフィルタはPython-Fuが利用可能な場合のみメニューに現れます。

14.4.3. オプション

図16.335 画像分割のオプション

「画像分割」のオプション

ほとんどのオプションの意味は見てのとおりですが、 あえて説明します。

HTMLドキュメントを生成する場所

生成されたHTMLファイルと画像ファイルの保管場所です。 初期状態では現在の作業ディレクトリにこれらのファイルが保管されます。 記入欄の右端の三角形のボタンをクリックすると他のフォルダを辿れる引き出しメニューが出てきます。

HTMLドキュメント名

生成されるHTMLコードを収めたファイルの名前です。 記入欄で他の名前も指定できます。

画像ファイル名のプレフィクス

このフィルタが生成する画像のファイル名は 共通部__.拡張子 となります。 このうち共通部のところがこの文字記入欄で指定できるプレフィクス (先頭部分) です。 初期状態ではsliceとなっています。 行と列にはそれぞれの番号が 0 を開始番号として振られます。 .拡張子エクスポートの画像形式 で指定したファイル拡張子が入ります。

このオプションはとくに 'onmouseover' と 'clicked' の Javascript を記述 オプションを有効にしており分割画像に他の組み合わせを必要としている場合に出番が多くあります。

エクスポートの画像形式

作成される ファイル形式 には GIFJPGPNG のいずれかが選べます。

画像を別フォルダにエクスポート; エクスポートするフォルダ名

画像を別フォルダにエクスポート させる場合は画像を収めるフォルダが無ければ作成されます。 この場合の既定の保管先フォルダの名前は images ですが、 エクスポートするフォルダ名 の記入欄で他のフォルダ名が指定できます。

例16.2 画像用に別フォルダを使った例

画像を別フォルダにエクスポート した結果


テーブル要素間の間隔

この数値はHTMLテーブルのセル同士の間隔を指定するcelllspacing属性値になります。 値の範囲は 0 ピクセルから 15 ピクセルまでです。 ここに正の整数を設定すると縦や横のガイドはこの太さをした平行線で現れます。

例16.3 テーブル要素間の間隔

関連しているHTMLコードの抜粋


ここで気をつけていただきたいことは、 この間隔を拡げても画像の規模は大きくならないことです。 むしろHTMLテーブルで揃えられた画像は消しゴムツールで縦横の線状に消されたように 見えることでしょう。

'onmouseover' と 'clicked' の Javascript を記述

このオプションを有効にするとこのフィルタは Javascript コードを追加します。 HTMLの場合と同じく生成されたままの状態では何の効果もありませんが、 動的機能を追加してゆくには良好な手掛かりとなります。 この Javascript コードはonmouseoverのようなイベントを扱う関数に利用できます。

例16.4 JavaScript コードの抜粋

function exchange (image, images_array_name, event)
  {
    name = image.name;
    images = eval (images_array_name);

    switch (event)
      {
        case 0:
          image.src = images[name + "_plain"].src;
          break;
        case 1:
          image.src = images[name + "_hover"].src;
          break;
        case 2:
          image.src = images[name + "_clicked"].src;
          break;
        case 3:
          image.src = images[name + "_hover"].src;
          break;
      }
  }
              

'<A>, </A>' の記述を省略

このオプションが無効ならばこのフィルタはすべての表組みセルに <a href="#"> ... </a>というハイパーリンク素枠を加えます。 逆に初期設定どおりこれを有効にすると、 ガイドが水平方向と垂直方向のどちらにも少なくとも2本以上ある場合に、 フィルタは各行各列のすべての先頭と最後のセルだけはこのハイパーリンク素枠を省きます。 この処置は画像に枠が描かれていてその部分は反応させたくないときに役立ちます。

例16.5 外周部の画像片にはアンカータグを省略 (簡易HTMLコード)

<table cellpadding="0" border="0" cellspacing="0">
  <tr>
    <td><img alt="" src="images/slice_0_0.png"/></td>
    <td><img alt="" src="images/slice_0_1.png"/></td>
    <td><img alt="" src="images/slice_0_2.png"/></td>
    <td><img alt="" src="images/slice_0_3.png"/></td>
  </tr>
  <tr>
    <td><img alt="" src="images/slice_1_0.png"/></td>
    <td><a href="#"><img alt="" src="images/slice_1_1.png"/></a></td>
    <td><a href="#"><img alt="" src="images/slice_1_2.png"/></a></td>
    <td><img alt="" src="images/slice_1_3.png"/></td>
  </tr>
  <tr>
    <td><img alt="" src="images/slice_2_0.png"/></td>
    <td><img alt="" src="images/slice_2_1.png"/></td>
    <td><img alt="" src="images/slice_2_2.png"/></td>
    <td><img alt="" src="images/slice_2_3.png"/></td>
  </tr>
</table>
              

内側のセルだけ (空の) ハイパーリンクがかかる。