新しい記事を書く事で広告が消せます。
スキャンした書籍や書類の余白をImageMagickで除去する
-trim, -fuzz
そういう都合のいいオプションはないものかと調べてみると、 -trim というのが見つかりました。
convert -trim a.png a-out.png
- a.png
-
- a-out.png
-
ただし、 -trim オプションは「角のピクセルと同じ色」を除去するようで、 紙の色ムラ・染みなどノイズが混じっていると上手く除去できません。
convert -trim b.png b-out.png
- b.png
-
- b-out.png
-
convert -trim c.png c-out.png
- c.png
-
- c-out.png
-
そこらへんも適当にうまいことやってくれよーと思うわけですが、 なんと大変都合の良いことに -fuzz というオプションがあるんですね。
-trim に添えて -fuzz 50% などと指定してやります。
convert -fuzz 50% -trim b.png b-out2.png
- b.png
-
- b-out2.png
-
すばらしい。
↓ パラメータをいじるとこんな感じで除去の度合いが変化します。
除去しない 0% ←→ 100% 強く除去する
スキャンした紙を加工する
以下、紙からスキャンした場合を想定した例です。
- スキャンした画像 original.jpg
-
上記と同じように fuzz + trim
convert -fuzz 50% -trim original.jpg out-1.jpg
- out-1.jpg
-
パーセント指定を大きくしすぎると 除去しなくていい部分(文字の一部)まで削れてしまいます。
convert -fuzz 70% -trim original.jpg out-2.jpg
- out-2.jpg
-
せっかくなのでレベル補正しましょうか。
convert -level 0%,75%,0.8 -fuzz 50% -trim original.jpg out-3.jpg
- out-3.jpg
-
さらに固定幅の余白を付けたい場合は -border を使います。
convert -level 0%,75%,0.8 -fuzz 50% -trim \ -bordercolor '#ffffff' -border 10%x10% \ original.jpg out-4.jpg
- out-4.jpg
-
固定幅の余白を付けるのではなく できあがりの画像サイズを指定して中央に配置したい場合、 -border を使う代わりに次の2つの処理を組み合わせます。
(1) 白で塗りつぶした200x100ピクセルの画像を作成:
convert -size 200x100 xc:white out.jpg
(2) 下敷きとなる画像(sita.jpg) の上にそれより小さな画像(ue.jpg)を重ねる。 配置は上下左右の中央:
convert sita.jpg ue.jpg -gravity center -composite out.jpg
全部一緒に組み合わせるとこうなります。
convert \ \( -size 320x400 xc:white \) \ \( -level 0%,75%,0.8 -fuzz 50% -trim original.jpg \) \ -gravity center -composite out-5.jpg
- original.jpg
-
- out-5.jpg
-
分かりにくい場合は無理に繋げなくても中間ファイルを作って段階ごとに処理すれば良いかと思います。
参考
- 2008-04-24 画像処理についてあれこれ: ImageMagickで、画像の上下左右に余白を追加する … -splice
ImageMagick逆引きコマンドリファレンス | |
![]() | クーガー株式会社 石井 敦 インプレスジャパン 2008-11-28 売り上げランキング : 426384 Amazonで詳しく見る by G-Tools |
「自炊」のすすめ 電子書籍「自炊」完全マニュアル | |
![]() | インプレスジャパン 2011-07-22 売り上げランキング : 21130 Amazonで詳しく見る by G-Tools |
電子ブック自炊完全マニュアル | |
![]() | 戸田 覚 東洋経済新報社 2010-12-03 売り上げランキング : 67122 Amazonで詳しく見る by G-Tools |
- 2011-07-30
- | tag: ImageMagick 自炊
- | trackback: 0
- | comment: 1
-
|
一定時間だけ指定範囲をハイライトする Emacs Lisp
一時的に指定範囲をハイライトするちょっとした Emacs Lisp を作ってみました。 ハイライトした後、一定時間後にハイライト表示が自動的に消えます。
ハイライトしたい範囲の開始ポイントと終了ポイントを指定すると 一時的に指定範囲をハイライトする。 ハイライトする時間はデフォルトは 0.1秒なので、一瞬キラっとする感じ。
;; require する
(require 'volatile-highlight)
;; 使う
(volatile-highlight 1 10) ; 開始位置、終了位置
(volatile-highlight 1 10 2) ; 開始位置、終了位置、ハイライトさせる時間(秒)
ハイライトに使っているフェイスは volatile-highlight-face で、たとえば背景色を変えたい場合は
(set-face-background 'volatile-highlight-face "#ff8")
のように指定する。
デフォルトのハイライト持続時間を変更したい場合は volatile-highlight:default-duration-sec に秒数をセットする。
(setq volatile-highlight:default-duration-sec 10)
eval-defun または eval-last-sexp して一瞬キラッとさせたい場合の例:
(require 'thingatpt) ; for beginning-of-sexp
(defadvice eval-defun
(after blink-after-eval-defun activate)
(let (beg end)
(save-excursion
(end-of-defun) (forward-char -1)
(setq end (point))
(beginning-of-defun)
(setq beg (point)))
(volatile-highlight beg end 0.2)))
(ad-activate 'eval-defun)
(defadvice eval-last-sexp
(after blink-after-eval-last-sexp activate)
(let (beg end)
(save-excursion
(setq end (point))
(beginning-of-sexp)
(setq beg (point)))
(volatile-highlight beg end 0.2)))
(ad-activate 'eval-last-sexp)
追記 2011-10-26
修正しました。変更点は以下の通り。
- 複数の箇所を同時にハイライトできるようにした
- volatile-highlight の3番目の引数で持続時間を指定できるようにした(optional)
- 変数名などを修正
関連記事
- 2010-05-16 hi-list.el: カーソルを含んでいるリストを常時ハイライトするマイナーモード
参考
- 2014-08-12 volatile-highlights.el — 操作に視覚的フィードバックを与える … 名前が微妙に被ってしまいましたね…。
- 2009-11-09 S式評価のためのちっちゃい拡張を集めた eval-sexp-fu.el というのを創りました。 評価している式をキラッとさせたりします。 - hchbaw記
- 2011-07-23
- | tag: Emacs
- | trackback: 0
- | comment: 0
-
|
DbUnit メモ
基本的なこと
代表的な(?)使い方
- テーブルのレコード数を期待値と比較 … getRowCount - テーブルの特定の行・列にある値を期待値と比較 … getValue - テーブル同士(DBから取得したものとあらかじめ用意した期待値)を比較 … assertEquals - データセット同士(DBから取得したものとあらかじめ用意した期待値)を比較 … assertEquals
データセットとテーブル
データセット(dataset)は複数のテーブルを持てる。 データセットオブジェクトは - DB - XMLファイル - xlsファイル から生成できる。 (サードパーティの(DbUnit公式ではない)ライブラリとして JSON や YAML を利用するものもあるようです) 次の XML では、1つのデータセットに MEMBERS と ITEMS という2つのテーブルが含まれている。
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<MEMBERS ID="1" NAME="ミネア" />
<MEMBERS ID="2" NAME="マーニャ" />
<ITEMS ID="1" NAME="ぬののふく" />
<ITEMS ID="2" NAME="ひのきのぼう" />
</dataset>
xls の場合、ブック(ファイル) が dataset に、シートがテーブルに対応する。
- 2011-07-02
- | tag: DbUnit
- | trackback: 0
- | comment: 0
-
|
Ubuntu 11.04でのTomcat 6.0のインストール(help.ubuntu.comのドキュメント日本語訳)
もともとは tomcat6-user 周辺のことを調べていて help.ubuntu.com のドキュメントにたどり着いたのですが、せっかくなのでページごと訳してみました。 素人翻訳なのでおかしな部分があるかもしれません。 訳の正確さについては無保証です。
波括弧{}の中は訳注や推測・憶測も混じった補足などです。
原文: https://help.ubuntu.com/11.04/serverguide/C/tomcat.html
Apache Tomcat
Apache Tomcat は、 Javaサーブレットと JSP によるウェブアプリケーションを提供するコンテナです。
Ubuntu の Tomcat 6.0 パッケージは2つの異なる実行方法をサポートしています。 クラシックな方法でインストールした場合は 「システムにつき一つのインスタンス」という形になり、 unprivileged な{rootとは別の、という程度の意味?}ユーザー tomcat6 {の権限}で{OSの}起動時に起動されます。 一方、自身のユーザー権限でプライベートなインスタンスをデプロイすることもでき、 この場合は自分で起動・停止しなければなりません。 この2番目の方法は、複数のユーザがそれぞれ自身の Tomcat インスタンスでテストを行う必要がある開発サーバのコンテキストで特に有用です。
システムワイドなインストール
Tomcat サーバをインストールするには、 端末のプロンプトで次のコマンドを入力します:
sudo apt-get install tomcat6
これにより、Tomcatサーバと、デフォルトの ROOT ウェブアプリ (デフォルトで最低限の "It works" を表示するもの)がインストールされます。
設定
設定ファイルは /etc/tomcat6
にあります。
共通の設定がほんの少しだけここに記述されるでしょう。
詳細については Tomcat 6.0 ドキュメンテーション を参照してください。
デフォルトポートの変更
デフォルトでは、 Tomcat 6.0 は HTTPコネクタ 8080、
AJPコネクタ 8009 で動作します。
システムの他のサーバとの競合を避けるため、
これらのデフォルトポートは変更しておくとよいでしょう。
その場合、 /etc/tomcat6/server.xml
の次の部分を修正します。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ... <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
使用する JVM を変更する
デフォルトでは、Tomcat はなるべく OpenJDK-6 を使い、
{それがだめなら}次に Sun の JVM を試し、
{それがだめなら}他の JVM を試します。
複数の JVM がインストールされている場合、どのJVMを使うべきかを
/etc/default/tomcat6
内の JAVA_HOME で指定します:
JAVA_HOME=/usr/lib/jvm/java-6-sun
ユーザとロールを宣言する
サーブレットコンテナ内でユーザ名、パスワード、ロール(グループ)を定義できます。
Tomcat 6.0 では、これを
/etc/tomcat6/tomcat-users.xml
で設定します:
<role rolename="admin"/> <user username="tomcat" password="s3cret" roles="admin"/>
Tomcat の標準ウェブアプリを使う
Tomcat は ドキュメンテーション・管理・デモ用のウェブアプリと一緒にリリースされています。
Tomcat ドキュメンテーション
tomcat6-docs パッケージは Tomcat 6.0 のドキュメンテーションを含んでおり、 ウェブアプリとしてパッケージされています。 デフォルトでは http://yourserver:8080/docs にアクセスすることで閲覧できます。 次のコマンドでインストールできます:
sudo apt-get install tomcat6-docs
管理者用ウェブアプリ
tomcat6-admin は2つのウェブアプリを含んでいます。 ウェブインターフェースを使って Tomcat サーバを管理できます。 次のコマンドでインストールできます:
sudo apt-get install tomcat6-admin
1つ目は manager ウェブアプリです。 http://yourserver:8080/manager/html からアクセスできます。 主に、サーバの状態把握とウェブアプリの再起動に使われます。
注意: デフォルトでは、manager
アプリケーションへのアクセスはブロックされています。
ロールが "manager" であるユーザをあらかじめ
/etc/tomcat6/tomcat-users.xml
で定義しておく必要があります。
2つ目は host-manager ウェブアプリで、 デフォルトでは http://yourserver:8080/host-manager/html からアクセスできます。 このウェブアプリを使うことで仮想ホストを動的に生成することができます。
注意: デフォルトでは、
host-manager アプリへのアクセスはブロックされています。
ロールが "admin" であるユーザをあらかじめ
/etc/tomcat6/tomcat-users.xml
で定義しておく必要があります。
セキュリティ上の理由から、 ユーザ tomcat6 はデフォルトでは
/etc/tomcat6
への書き込みができません。
これらの管理者用ウェブアプリ(アプリケーションのデプロイ、仮想ホスト生成)
で使われるいくつかの機能では、
このディレクトリへの書き込みが必要となります。
それらの機能を使いたければ、
tomcat6 グループのユーザに必要な権限を与えるために次のコマンドを実行してください:
sudo chgrp -R tomcat6 /etc/tomcat6 sudo chmod -R g+w /etc/tomcat6
Tomcat サンプル・アプリケーション
tomcat6-examples パッケージは、 サーブレットと JSP 機能をテストないしデモするために使える 2つのウェブアプリを含み、 デフォルトでは http://yourserver:8080/examples からアクセスできます。 次のコマンドでインストールできます:
sudo apt-get install tomcat6-examples
プライベートなインスタンスを使う
Tomcat は開発とテストにおいてヘビーに使われますが、 そのとき、単一のシステムワイドなインスタンスでは、 複数のユーザの要求を満たすことができません。 Ubuntu の Tomcat 6.0 パッケージには、 あなた自身のユーザ指向なインスタンスのデプロイを助けるツールが付属しています。
注意: 異なる TCP ポートを割り当てていれば、 システムワイドなインスタンスとプライベートなインスタンスを同時に動作させることができます。
プライベートインスタンスのサポートをインストール
次のコマンドを実行すると、 プライベート・インスタンスの使用に必要なものがインストールできます:
sudo apt-get install tomcat6-user
プライベート・インスタンスの生成
プライベート・インスタンス用のディレクトリを作成するには、次のコマンドを実行します:
tomcat6-instance-create my-instance
このコマンドにより
my-instance
ディレクトリが新たに作成され、
その中に必要なサブディレクトリとスクリプトが配置されます。
たとえば、共通ライブラリはサブディレクトリ
lib/
に置き、
あなたのウェブアプリをサブディレクトリ
webapps/
にデプロイします。
デフォルトではデプロイされているウェブアプリはありません。
プライベート・インスタンスの設定
プライベート・インスタンスのための Tomcat のクラシックな設定ファイルが、
サブディレクトリ conf/
内にあることに気付くでしょう。
たとえば、実行中の他のインスタンスとの競合を避けるためにプライベート・インスタンスで使うポートを変更したい場合、
conf/server.xml
を編集する必要があります。
プライベート・インスタンスの起動・停止
プライベート・インスタンスを起動するには、
次のコマンドを実行します
(プライベート・インスタンスが
my-instance
に置かれていることを仮定):
my-instance/bin/startup.sh
注意: 何かエラーが出たら、サブディレクトリ
logs/
をチェックしましょう。
java.net.BindException: Address already in use<null>:8080 というエラーが出ていたら、使おうとしていたポートがすでに使用されていますので、ポート指定を変更しなければいけません。
プライベート・インスタンスを停止するには、
次のコマンドを実行します
(プライベート・インスタンスが my-instance
に置かれている場合):
my-instance/bin/shutdown.sh
参考資料
-
より詳細な情報が Apache Tomcat のウェブサイトにあります。
-
Tomcat: The Definitive Guide は、Tomcat を使ったウェブアプリ構築のための良いリソースです。
-
その他の書籍は Tomcat Books 一覧ページを見てください。
-
また、Ubuntu Wiki Apache Tomcat のページも参照してください。

This work by Ubuntu documentation team (original English text) and sonota (Japanese translation) is licensed under a Creative Commons Attribution ShareAlike 3.0 Unported License.
Based on a work at help.ubuntu.com.
メモ
might want to
複数インスタンスの使用については 「CATALINA_BASE インスタンス 複数」で検索する。
Java の切り替えは sudo update-alternatives --config java で。
ちなみに、10.04(LTS)のドキュメントと比較してみましたが、変更点は何もありませんでした。
参考(外部リンク)
- 2011-03-23 【Ubuntu 11.04】 Tomcat 7.0.11 インストール + Eclipse 3.7M6(Indigo)に Tomcatプラグイン インストール:なんでもかんでもコンピュータ:So-netブログ
- 2011-02-15 Ubuntu10.10にTomcat6をインストール - すべての道はローマに通ず - 楽天ブログ(Blog)
- 2011-02-04 (10.10) ubuntu + tomcat + eclipse + mysql のメモ - 鎌倉ソフトのブログ beta
- 2010-12-13 Ubuntu10.10 自宅サーバ構築手順:Tomcat実行環境(Tomcat6)インストール - Diary of absj31
- 2010-06-07 Ubuntu Lucid Lynx 10.04 で Apache2 と Tomcat6 の連携 その1 - KRAKENBEAL RECORDS
- 2010-02-11 (9.10) Ubuntu(Karmic)で初めてのTomcat(Tomcat6) - yinkywebの日記
- Ubuntu Server Guide … 11.04
関連書籍
Tomcatハンドブック 第2版 | |
![]() | Jason Brittain Ian F. Darwin 村上 雅章 オライリージャパン 2008-11-21 売り上げランキング : 189524 Amazonで詳しく見る by G-Tools |
Jakarta Tomcatエキスパートガイド―Webアプリケーションのための環境構築 | |
![]() | アミツト・バコレ 中川 和夫 Ja-Jakarta ソフトバンククリエイティブ 2003-08 売り上げランキング : 208319 Amazonで詳しく見る by G-Tools |
Tomcat実践アプリケーションサーバ構築―Servlet、JSPを使いこなす | |
![]() | 糸魚川 茂夫 アイクリエイティブ 2001-12 売り上げランキング : 709491 Amazonで詳しく見る by G-Tools |
- 2011-05-03
- | tag: Linux Ubuntu
- | trackback: 0
- | comment: 0
-
|
Yapra: hAtomまたはユーザ定義XPathを使ってウェブページをフィードに変換するプラグイン
表題の通りです。 再発明くさいのですが、他のプラグインから呼び出して使うことを想定して作っています
単体でも使えなくはないです。RSS::save に渡せばフィードとして保存できたりします。
ダウンロード
https://gist.github.com/raw/824665/2fcfd878b2cfd5f8e50aab97282c537213bbe453/extract.rb
{class base plugin dir}/yapra/plugin/feed/extract.rb として保存してください。
コード
Yapra メモ … その他の Yapra 関連記事についてはこっちにまとめてあります
- 2011-02-13
- | tag: Ruby Yapra microformats
- | trackback: 0
- | comment: 0
-
|
** ホームに戻る