2010年6月30日水曜日

iBooksのブックカバー

iBooks の本棚に並ぶ本には視認性のよさや並べた満足感もあり、ブックカバーが欲しいところ。
これには2つの方法がある。

一つは、iTunesで本を選んでプロパティに画像を貼ること。これは音楽のレーベルと同じ方法。
これだと、作成時に常に一体化しないので利便性が悪い。
もう一つの方法は、epub形式のxmlにメタファイルで cover= を設定すること。
こっちのほうが、epub としては当たり前の設定らしい。
しかし、使ってるepub編集ソフト Sigil だと、coverの設定が分からない。
help で cover を検索しても出てこないし・・・。
もしかして機能がないのかも。
困った困った。

エディタで書き加えるのはメンドイ。

2010年6月27日日曜日

Web漫画を保存する

Web漫画はネット上にいっぱいあって、まだまだ、収集は終わらない。
どんどん、iBooks化して、iPadに溜め込んでるけど、ぜんぜん終わらない。
漫画によって置き方がバラバラで、それぞれ手を入れないとなかなか上手くいかないから。

で、今回はちょっとしたテクニックの紹介。

Web漫画はイロイロな形でページに置かれる。種類はだいたいこんな感じ。
  1. html に画像が貼ってあるだけ。
  2. JavaScript プログラムで画像だけ表示切替え。
  3. Flashを使ってヴューワーを起動して画像を表示。
  4. Flashを使ってビューワーを起動してストリーミングで画像を表示。
  5. Flashを使った謎のプログラム。
1がほとんどだけど、企業サイトとはは、4と5が多い。これは簡単にコピーされないようにするため。
そういったものは画面に表示されているときに画像キャプチャソフトで撮るしかない。
3の場合はフラッシュとして保存すれば、画像を吸い出すことができるツールがあったりする。

で、「画像一括ダウンロード!」っぽいソフトの類は1しか画像のゲットはできない。
2以降はリンクがhtmlに埋め込まれてないから。

で、2の場合は、表示された画像をエクスプローラにドラッグすればコピーできるけど、全部のページでそれをやるのは面倒だし、漏れがないか気になるし、それに画像にリンクがあるとファイル名がリンク先になってしまうので困る。

そこで、コミックスクリプトという良く使われるスクリプトの場合だけだけど、簡単に保存できる方法を説明する。

コミックスクリプトは、ファイル名がかならず、1.gif ~ 32.gif みたいな感じで単純な数字の連番になっている。
gif だったり、pngだったり画像形式は決まってないみたいだけれど。

さて、画像ファイルがどこに入っているのか見てみよう。

IEのだと、最初のページを表示させた状態で、画像を右クリックして表示されるメニューから「プロパティ」を選ぶと、ダイアログが表示されて、アドレス(url)が表示される。

Chrome だと、右クリックメニューから「画像URLをコピー」でURLがクリップボードに入るのでどこかにペーストして見てみるといい。

ここに画像が連番で入っている。

で、こいつらファイルをローカルの HTMLファイルで表示させる。

次の HTMLファイルをローカルに作る。

<html>
 <body>
  <script>
  tpage = 1; // 最初のページ番号
  epage = 32; // 最後のページ番号
  url = "http://xxxxxx.net/xxxxxx/ep1/" ; // 画像が置いてあるURL

  for( i=tpage; i<=epage; i++ ){
   document.write("<div>" );
   document.write("<img src='" + url + i + ".jpg'>" );
   document.write("</div>" );
  }
  </script>

 </body>
</html>

ファイル名は何でもいい。拡張子は ".html"で。

さっき見たURLから最後のファイルのところだけ削って、url = のところに書く。
ページを開くと最後のページ番号が書いてあるので、それを epage = のところに書く。
.jpg になっている画像の拡張子は、必要ならば正しいものに書き換える。

次に、このファイルを保存してブラウザで開く。
そうすると、全部の画像が一つの画面に表示される。

あとは、これをブラウザの機能を使って画像ごとファイルに保存する。
そうすると、画像だけ新しいフォルダに全部入る。

と、こんな感じでゲットする。
章ごとに分かれてフォルダに入っていることが多いので、それぞれのフォルダごとにこのファイルを作って保存する。

あとは、これらの画像を使って epub 形式に作るのだ。

2010年6月13日日曜日

Web漫画と著作権

Web漫画の収集は続く。

公開されているWeb漫画を収集してファイルにし、自分のPCとかで見るのは著作権的には限りなく白に近いグレーっていうか、法的には白。

タダで公開しているWeb漫画の著作権は作者さんたちに帰属されるのは当然だが、そもそもPCで見れている段階でそのイメージはキャッシュに読み込まれているわけで、それを別のフォルダに移してしまうだけで違法だというのはおかしい。

しかし、作者さんたちからすると、たしかに気分的には良くないかもしれない。
そして、そのファイルをそのまま断りもなく公開してしまうのはグレー。さらにそれを売ってしまったら完全に黒だわな。
でも、引用なら、引用なら、法律内だ! ・・・・めんどうだからやらないけど。

というわけで、たくさん収集はしてますが、ここでそれを公開なんてなことはしませんぞ。

epub(iPadのiBooksで読める形式) 化して欲しいっていう作者さんがいたらやってもイイですけど。

ちなみに商用サイトのWeb漫画とかはシステム的にコピーしにくいように作ってはありますが、画面に表示されている段階でコピーできる。
画面をキャプチャして、あとはカッティングすればよい。

なので、カッティングのプログラム作ってみた。
C#ってなんてプログラミングが楽なんだろう。

コマンドラインのプログラムなのは、バッヂファイルとして実行できるようにするため。

C> imgcut imputfilename xOffset yOffset width height outputfilename

こんな感じで実行する。

で、ソースはこれ。エラー処理が甘いけどまぁいいや、面倒だし。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;

namespace Imagecut
{
    class Program
    {
        static void Main(string[] args)
        {

            if (args.Length != 5 && args.Length != 6)
            {
                Console.WriteLine("use: imgcut imputfilename xOffset yOffset width height [outputfilename(png)]");
            }
            else if (System.IO.File.Exists(args[0]))
            {
                try
                {
                    Bitmap bmpSrc = new Bitmap(args[0]);            // ファイルを読み込む
                    Bitmap bmpNew;

                    int xOffset = int.Parse(args[1]);
                    int yOffset = int.Parse(args[2]);
                    int width = int.Parse(args[3]);
                    if (bmpSrc.Width < xOffset + width)
                    {
                        width = bmpSrc.Width - xOffset;
                    }
                    int height = int.Parse(args[4]);
                    if (bmpSrc.Height < yOffset + height)
                    {
                        height = bmpSrc.Height - yOffset;
                    }
                    string newFilePath;

                    Rectangle rect = new Rectangle(xOffset, yOffset, width, height);

                    bmpNew = bmpSrc.Clone(rect, bmpSrc.PixelFormat);
                    // 出力ファイル名
                    if (args.Length == 6)
                    {
                        newFilePath = args[5];
                        if (System.IO.File.Exists(args[5]))
                        {
                            newFilePath = args[5].Substring(0, args[5].Length - 4) + "00.png";
                        }

                    }
                    else
                    {
                        newFilePath = args[0].Substring(0, args[0].Length - 4) + "00.png";
                    }
                    Console.WriteLine(newFilePath);
                    bmpNew.Save(newFilePath, ImageFormat.Png);   // ファイルを保存

                    bmpNew.Dispose();   // リソースを解放
                    bmpSrc.Dispose();   // リソースを解放
                }
                catch
                {
                }
            }
            else
            {
                Console.WriteLine("file not found");
            }
        }
    }
}

2010年6月8日火曜日

ひたすらWeb漫画

ひたすらWeb漫画を収集しては iPadに入れるファイル(iBooksで読めるやつ:epub形式)に変換する日々。どんどんたまってきたが、よっぽどの大作で無い限り容量もたいしたことない。いくら入れてもiPadはスカスカ状態。

変換するのにスクリプトとか書いてどんどん効率が良くなってきた。
漫画専用の epub 作成のアプリケーション作るのもいいかなと思ってきた。

漫画ってヤツは、忘れた頃にまた読むのがいい。
そのためにも、いっぱい溜め込む必要ありだな。

これで空港とか長い待ち時間は退屈しなくていいかも。

Web漫画はたいてい1ページ単位でできている。
市販本漫画は、見開き(2ページ)が基本なので、漫画の読み方がレイアウト的に異なる。
ページをめくったときに次に見えるコマや、めくる前のコマが、それなりの意味を持って描かれる。
それが見開き単位でおこなわれるのが、市販本漫画。
しかし、Web漫画だとそれが基本1ページ単位となる。

iPadだと、漫画の見開きは画面サイズと解像度の関係で見開きをいっぺんに見るのはつらい。
1ページだと見やすい。
なので、Web漫画は iPadに最適なんじゃないかと思う。

しか~し、Web漫画でもなぜかときどき見開きぶち抜きのページをつけちゃう作者がいて困る。
まぁ、タダで見てるので文句は言えないが・・・・。

2010年6月7日月曜日

iPad ケースに穴を!

「iPadケースの落とし穴」の続き。

iPadは外光に反応してバックライトの明るさを自動調節する機能があり、安いiPadケースを買ってしまったために、その外光を検知するセンサーがふさがれてしまい、その機能が使えなくなっちまった。

そこで、ケースに穴を開けて対処することにした。
ドリルでガリガリと。
位置は適当にした。


こんな感じ。
なかなか上手くいかないもんだなぁ。
けばけばな感じに。
やすいケースだったが、どうやら本物の革だったようだ。



実際にiPadを入れると、こんな感じ。
で、肝心の反応の方はというと、・・・・微妙。
だいたい位置はあってるけど、穴が小さすぎるのかも。
それなりに厚みがあるからかな。少しでもずれると反応しなくなる。

まぁ、こんなものか・・・。

2010年6月5日土曜日

iPad で漫画を!

iPadって漫画読むのにすごくよさげだと思ったけど、今のところまともに提供されているのが無いみたいなので、んじゃ、自分で作っちゃおうってことで、調べてみた。

まず、ビューアーだが、標準でついてる iBooks ぐらいしかまともなのがないのか?
まぁ、これでいいとして、・・・・・。

なんと、コレ右開きがない。漫画には致命的。アメリカで売ってるジャンプでさえ、右開きだっていうのに、アホかと、バカかと。

アップル、漫画なめちょるな。

まぁ、あんまりちっちゃくなると、読めなくなるから片面のみで我慢することにした。つまり、iPadで漫画を読むときは、縦限定で読むってこと。
で、漫画そのものはどうするかというと、Webで公開されてる漫画の中にもすっげぇ面白いのがある。
なので、とりあえずこれを入れてみる。
だいたい、Web漫画ってやつは、普通の本形式の見開きを意識しないでレイアウトしているものもおおいので、縦限定でもたぶんOK。

さて、画像ファイルをフォルダに一つ一つ放り込むんだけど、これが結構大変。
単純作業だけど、ページが多いとそれなりに面倒。
保存ざれるファイル名に気を付けてとにかく放り込む。

で、使うツールは、Sigil ってやつ。
iBooksのファイル形式は、epubと言う形式で、これは画像とかhtmlファイルとかをzipで固めたもの。
このSigilはそれをそのまま編集できる。結構便利なもの。
で、起動するとこんな画面。



まずは、InsertメニューからImage...を選んで、フォルダのファイルを全部選んで、開くボタンをクリック。
これでファイルを全部読み込んだんだけど、コレだけじゃどうもダメっぽい。
ページが前後したり、きちんと漫画1ページが本の1ページに対応してくれない。

そこで、ViewメニューからCode View を選んで、HTMLファイルを編集だ。
<p><img src="../Images/no0401.gif" />・・・・・<img src="../Images/no0499.gif" /></p>

こんな風に画像の img タグの行が全部くっ付いちゃってるので、これをバラバラにする。<div>タグで囲めばよい。 ついでに、<p>タグはいらない。

画像の全部の行を

<div><img src="../Images/××.gif" /></div>
にする。
センタリングとかしたい場合は、div にスタイルでも与えてくれ。
全部の行を<p>でくくると、なぜか1ページおきに表示されてしまうっぽい。

まぁ、そんなわけでこれを保存して iTunesに送れば、終了。

無事漫画がiPad で見れました。


※画像 暗くてスマン。



2010年6月1日火曜日

iPad ケースの落とし穴

iPadを買ってみて、やっぱりケースが欲しくなったので、Amazonマーケットプレイスで1029円のレザーケースを買った。

「レザーブックケース for Apple iPad」 なんだこれ、型番すらない。

やけに安かったので不安だったのだが・・・・。

レザー? これレザーなのコレ?
合成革のようにも見えるけど、本革って言われてもよくわからん。
しかし、この値段なら文句は言えない。

さっそく、iPadを入れてみたら、なんと、画面がやけに暗い。・・・・ムムム。



理由は、画面の明るさ調整を自動でやる設定になっていて、そのセンサーがすっかり隠れてしまうのだった。
いろいろ、他の高いケースを見てみると、ホントに高いケースは、ちゃんとセンサー部が隠れないようになってるが、他のそこそこ安いものでも、すっかり隠れてしまうご様子。

さて、どうしたものか。

・・・そうだ、穴を開けよう。
うん、そうしよう。

さて、クレードルにパイルダーオン(古い)!!
・・・できない。 やっぱ安物だ。
他の高級品だと、できると書いてるのがあるな。ショボーン。

それはさておき、カバーを付けて鞄に入れて家に帰ったら、何か重い。
調べてみると、重さ約221グラムか、そんなんでもなんか重くなった感じがする。
Appleのサイトで調べると、iPad はたったの680グラム。
つまり、680グラムが901グラムにアップしてしまったわけだ。重さ1.325倍だ。
せっかく軽いiPadが、それなりに重くなってしまう。
これも気をつけるべきポイントかも。