COBOLで画像を作る
初版 2019/08/26 02:22
改訂 2019/08/26 08:24
2015年に、「COBOL+ImageMagik」でカバーアート用の画像を作ってみた時の日記です。
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566774900413-6fgmqflhqys-e9057b59d2e611e2eb4d86c8f4c12ac6/img1.jpg)
COBOLで画像を作るなんてできるのかと思ってしまいますが、ppm形式(テキストベース)の画像データをプログラムで生成すれば可能です。
![](http://muuseo.com/diary_ogp_icon.jpg)
PNM (画像フォーマット) - Wikipedia
PNM (Portable Any Map 形式[1][2]、Netpbm形式) は簡素な2次元ラスター画像形式のひとつである。PNMは特定の1種類の画像フォーマットではなく、異なるカラーモードをサポートするための3種類の画像形式をまとめて呼ぶときに使われる総称である[3]。これらの形式は、それぞれ portable pixmap format (PPM 形式)、portable graymap format (PGM 形式)、portable bitmap format (PBM 形式) と呼ばれ、いずれも異なるプラットフォーム間でも高い互換性を保てる画像形式として開発されたものである。
https://ja.wikipedia.org/wiki/PNM_(%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88)
480x480 px の真っ赤なタイル画像をCOBOLで作ってみましょう。
program-id. img001.
data division.
working-storage section.
01 i pic 9(4).
01 j pic 9(4).
procedure division.
display "P3"
display "480 480"
display "255"
perform varying i from 1 by 1 until i > 480
perform varying j from 1 by 1 until j > 480
display "255 0 0"
end-perform
end-perform
stop run.
コンパイルして実行してみます。
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566751809984-wzfpa39fwot-fd5e0a66d531a5b9adf2b47423d37da3/%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89%E4%B8%80%E6%99%82%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB01.jpg)
できた画像を表示してみましょう。
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566751849099-vfhimcopy2l-fd5e0a66d531a5b9adf2b47423d37da3/%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89%E4%B8%80%E6%99%82%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB02.jpg)
こんな感じで画像を作成できるので、あとはプログラムでもっと複雑な画像も作ることができます。
青のグラデーション画像を作ってみます。
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566752998029-yh5i4ge36k-aaa53b6d027b46fae3a26604aab7c194/%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89%E4%B8%80%E6%99%82%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB04.jpg)
表示してみると、こんな画像ができています。
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566752780905-14kv8v1ougp-aaa53b6d027b46fae3a26604aab7c194/tile.jpg)
この画像をconvertコマンドの-swirで加工してみます。
convert -swirl 100000 tile.jpg img1.jpg
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566753293507-vq7kl73n23-c3448a812c8c31b0a5352a7ff591a847/img1.jpg)
convert -swirl 100000 tile.jpg img1.jpg
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566752807272-zpch4zidl28-aaa53b6d027b46fae3a26604aab7c194/img1.jpg)
どうでしょうか。COBOでも画像を生成することができます。
アルバム「Image Magic」のカバーアートは、こんな感じでCOBOLで作ってみました。音楽のほうもCOBOLで作ったのですが、また別の日記に書いてみます。
![](https://f4.bcbits.com/img/a1272284733_5.jpg)
Image Magic | YAMAZAWA
Image Magic by YAMAZAWA, released 29 July 2015 1. 中国の庭 2. 奄美の浜 3. バリの風 4. インドの朝 5. ギリシャの午後 6. スペインの夜 7. 弦楽の憂鬱
https://yamazawa.bandcamp.com/album/image-magic
#プログラミング #COBOL
![File](https://d17x1wu3749i2y.cloudfront.net/2019/08/01/18/45/52/659413ae-4e5b-45a3-99ba-7831945efb12/file.jpg)
mugen
様々なプログラミング言語を使って、音楽を自動作曲しています。
使用している言語
・awk
・COBOL
・JavaScript
・R
・サクラ
・ドリトル
・なでしこ
https://yamazawa.bandcamp.com/
17人がフォロー中
-
Visits
101,008
-
Items
1,157
-
Lab Logs
100
-
Likes
776
Since August 2019
![Default](https://d3caz7hhiepl95.cloudfront.net/assets/user/default-6344dcd9594efe2c770024a51c383175.png)