2019年9月17日火曜日

png や jpeg を epsにする話(2019)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
『jpeg 画像なら gm convert で eps2 にして、 png 画像なら convert で eps3 にするとよい。』という話になりました。どっちかにまとまらなかった…

ピクセル画像ファイル(jpeg や png) を eps ファイルにしたとき、ファイルサイズが大きくなってしまいます。どうすればいいでしょう? という件、一昔前なら『 sam2p で変換しとこう』ということにしていたのですが、Ubuntu 18.04 LTS を導入したところ、正式に sam2p が無くなっていました。そりゃあなあ…… debian package にすら既にないし、そもそも上流公式ページすら無くなってるしなあ(ソースはあるっぽい)

というわけで sam2p 無き令和の時代にあって、改めてepsファイルにどう変換するか問題を扱っていくわけですが、とりあえず下記のように testpng.png という画像を1枚用意し、そこからjpeg画像への変換、ならびに imagemagick, graphicsmagick による eps 変換を行いました。(Ubuntu 18.04LTSで導入したものを使いました。バージョン表記略)
 
得られた結果はご覧の通り。  
なんの指定もせずに変換したepsファイル、つまり Postscript Level 1 にしたものは、ファイルサイズが肥大することが分かります。 また、imagemagick では設定によっては変換することが出来ません。 PS Level2 と Level3 だけを取り出して表にします。


jpg(im) jpg(gm) png(im) png(gm)
jpg/png 45039 39572
eps2 48968 48945 49651 49642
eps3 49424 61298 37030 45145

jpeg画像を最も小さく変換するのは graphicsmagick の Postscript Level 2 指定を行った変換 ( gm convert picture.jpg eps2:picture.eps ) となりました。
一方、png画像を最も小さく変換するのは imagemagick の Postscript Level 3 指定を行った変換 ( convert figure.png eps3:figure.eps ) となりました。
いったい何故このような差になったのか……

imagemagick の結果だけを比較してみます。  
jpeg の変換は eps3 より eps2 のほうがファイルサイズが小さく、逆に png の変換は eps2 より eps3 のほうが小さいことが分かります。png の eps3 への変換が、元の png 画像よりも小さくなっているのは、元の png 画像が低い圧縮度合いであったためと思われます。(元画像は gnuplot の term pngcairo で作成したものです。)

これに対し、graphicsmagick の結果だけを比較してみます。  
graphicsmagick が生成する PS Level 3 eps は、データストリームがASCII文字になっています。その影響を大きく受けるのは jpeg をPS Level 3 eps に変換するときのようで、imagemagick の場合以上に、PS Level 2 eps よりもファイルサイズが大きくなります。
また、graphicsmagick で png を変換すると、 imagemagick で変換したものより若干ファイルサイズが大きくなります。PS Level 3 eps が 元の png 画像のファイルサイズより大きいことから、imagemagick と違い、改めて圧縮するようなことはしていないようです。(そういえばgmのほうが処理が早かったような。)

表を眺めてみると、graphicsmagick で jpeg を eps3 に変換するのが最もファイルサイズが膨らむようなので、それだけは避ける。 gmなのかimなのか分からないなら「とりあえずeps3にすることだけ考える」でいいのかも知れません。つまり、

convert pixelpicture.jpg eps3:pixelpicture.eps

これだけ覚えておけ、でもいいのか……? PS Level 3 をうまく処理出来ないみたいな話が出てきたら諦めてeps2にしましょう。

誰かやってください:
・jpegファイルからpngファイルを作った場合、同じような結果になるのか?
・png や jpeg のファイル圧縮度合いはどれくらい影響するのか?

2019年8月2日金曜日

Debian 10.x (GNOME)でデスクトップにファイルアイコンが出ない

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Debian 10(buster) GNOME版をインストールしたらデスクトップにアイコン(ファイル)が表示されないのは、ファイル(nautilus) 機能からデスクトップ描画機能が無くなったから、のようです。
https://kledgeb.blogspot.com/2018/01/ubuntu-1804-30-nautilus.html

デスクトップ機能はファイルブラウザじゃなくてgnome-shellに持たせようという、上記Webページで説明されている方針(3)の方向に向かっているようで、Debian 10 では
gnome-shell-extension-desktop-icons
パッケージを入れ、gnome-shell の拡張機能として使うと良いようです。

で、ここで個人的に困ったんですが、これ gnome-shell の拡張機能なので、gnome-session-flashback で古いセッションを使っている場合は機能しません。

そのため、昔のようなプルダウンメニューも使いたいし、デスクトップアイコンも表示させたい、という場合は、gnomeの標準セッション(gnome-shell)で、

 (1) gnome-shell-extension-desktop-icons パッケージを入れる。
 (2) gnome-shell-extensions パッケージの依存関係で gir1.2-gmenu-3.0 が入っているることを確認する。無ければ入れる。

とすれば、gnome-tweaks コマンドの「拡張機能」の中に「Applications menu」が表示されるので、これを on にすると、左上に『アプリケーション』から始まるプルダウンメニューが表示され、階層化されたメニューが使えるようになります。
さらに「Desktop icons」をonにすれば、デスクトップフォルダの中身とゴミ箱と何故かホームディレクトリのアイコンが、デスクトップに表示されます。表示したいものを選びたい場合は、歯車アイコンを押して微調整するとよいでしょう。

Linuxデスクトップ環境においても、少しずつ新しい操作感覚に慣れる必要がありますね。

2019年7月16日火曜日

dia で図に日本語を入力出来ない?(ubuntu 18.04LTS)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Ubuntu 18.04 LTSに入れた dia で日本語が入力出来ないときは、 dia --classic というオプションをつけて起動すると、入力出来るようになるかも、という話。

Ubuntu 18.04 LTS を使っていて、dia で日本語を入力しようとしても出来ない、という相談を受けました。検索してみると、dia-normal を使うといい、とか、オプションに -integrated をつけるといい、とかいろいろ出てくるのですが、/usr/bin の下には dia しかないしなあ…… と思ったら、どうも最近(2017年以降)は無いようですね。理由はこれ。

https://metadata.ftp-master.debian.org/changelogs//main/d/dia/dia_0.97.3+git20160930-8.1_changelog
というわけで、 当面はこれでしのぎつつ、なんで classic じゃないのは日本語通らないんだろう、というのを追求したいところですが誰か代わりにやってほしい……