メインカテゴリーを選択しなおす
(ruby)(crystal) rubyとcrystalで違う部分 「コマンドライン引数」
rubyとほぼ同じような書き方が出来るcrystalですが、 当然違う言語なので違う部分も色々とあります、 その一つとして コマンドライン引数の受け方で違いが出てきます。rubyで 第一引数が無かった場合の判定としては ARGV[0] == nil と書くことが出来ますが、 crystalでは 引数がない所の値を取得しようとすると、Index out of boundsエラーが 発生します、 rubyでは引数が無い部分を指定したらnilが返ってきますが、crystalではそうなりません。 ( puts("ファイルを指定してください") exit(1) ) if ARGV[0] == nil #…
(Crystal)(ArchLinux)(AlterLinux) --staticでbuildする時に「ライブラリが見つからない」となる場合
この記事はAlterLinux(ArchLinux系)で確認したものになりますCrystalで 動的リンクではなく静的リンクで外部のライブラリに依存することなく動作させようとして --staticオプションを付けて buildしようとしたら -lpcre -levent -lgc 等が見つからないとなって、 buildに失敗することがあります。原因としては 静的リンクライブラリファイル(.a)が無いからのようで、 何らかの方法で不足しているファイルを用意すればエラーは出なくなるようです。基本的な流れは ソースからビルドを行い ライブラリとしてパスが通った所にインストールする感じですが、 mak…
(Crystal)(PNG) CrystalでPNG画像の幅と高さをヘッダの部分から取得する
Crystalで PNG画像ファイルの幅と高さをヘッダの部分から取得します、 ヘッダ部分を見て、PNG画像のヘッダかどうかの判断もするようになっています、 実際に画像データを読み込むわけではないのでデータが壊れていないなどの保証は出来ません、 その分、情報の取得速度は非常に高速です。 ヘッダの構造を読み替えれば、その他の情報や その他のファイル形式にも応用できます。 # png_picture_size <filename> [0 1] [both cols rows] # 0 or 1 カウントを始める数、省略時は 1 # (座標として扱う時は0、 幅や高さとして扱う時は1の方が扱いやすい)…