(2014/05/01~)
2014/05/12

[Delphi Programming] DelphiZXingQRCode: Delphi QR Code Generator

Delphi 用の QR コードジェネレータです。オリジナルは以下にあります。

ただ、このままだと日本語の扱いがおかしくなります。何故なら QR コードでの日本語は Shift_JIS で書かれる事を想定してありますが、コードはそのようになっていないからです。そこで、ちゃんと日本語を扱えるように改変してみました。

改変点は以下のようになります。

あまり深く考えずに、デフォルト状態で日本語を扱えるようになっています。使い方は以下のようになります。

uses
  ..., DelphiZXingQRCode;

var
  QR: TDelphiZXingQRCode;
  iCols, iRows: Integer;
begin
  QR := TDelphiZXingQRCode.Create;
  try
    QR.Data := 'Hello,world.';
    for iCols:=0 to QR.Columns-1 do
      for iRows:=0 to QR.Rows-1 do
        if QR.IsBlack[iRows, iCols] then
          begin
            // 描画処理
          end;
  finally
    QR.Free;
  end;
end;  

Data プロパティに文字列を突っ込むと、QR コードの縦横ピクセル数が Rows / Columns プロパティで取得できます。IsBlack プロパティで True が返ってくる座標を黒で描けば QR コードを描画できます。 あくまでジェネレータなので、描画は自前で行わなくてはなりません。私の作ったバーコード作成ユニットもジェネレータであり、ビットマップ画像を作ったりはしてくれません…一体何故でしょう?

バーコード全般に言える事ですが…例えば細バーと太バーの比率は厳密に定められています。これを逸脱すると読み取り精度の悪いバーコードになってしまいます。単純な例を出してみましょう。例えば 1px 幅のラインを 1.5 倍に拡大したとします。さて、この時のバーの幅は何 px でしょうか?1px?それとも 2px? さらに言えば、ビットマップ画像を拡大/縮小してしまうとアンチエイリアス処理が行われる事がありますよね?このようにしてできたバーコード / QR コードは読み取り精度がガクンと落ちてしまうのです。特に高精細のバーコードではその差が顕著に現われます。

生成されたビットマップ画像がドットバイドット、或いはアンチエイリアスを伴わない整数倍で描画されれば話は別ですが、印刷物での読み取り精度を高めるにはプリンタの解像度を取得して、整数倍で描画されるようにキッチリ計算して自前で描画してやる必要があります。

第28回 エンバカデロ・デベロッパーキャンプ資料ダウンロード

過日行われた第28回 エンバカデロ・デベロッパーキャンプのセッション資料がダウンロードできるようになりました。

私の担当分は以下になります。

毎度繰り返しになりますが、デベロッパーキャンプの資料には Web で検索しても見つからない情報が載っていたりしますので、過去のセッション資料にも目を通しておくといいと思います。

See Also:


2014/05/24

スティック型 Android 端末

楽天のポイントが失効しそうだったので、コレを買ってみた。

送料込で 1,980円のスティック型 Android 端末。ワイヤレスマウスまで付いている。念の為に断っておくとこの製品はスペックが低い。RAM 512MB でシングルコアの Telechip ARM Cortex A5。1GHz って書いてあるけど 800MHz だと思う…「こりゃ在庫処分品かな?」というのが正直な感想。遊び方を知ってるヒト向けで、なんでもかんでもやりたいヒトには向いていないと思う。

マトモなスティック型 Android 端末を使いたかったら、もう少し程度のいい奴を探した方がいい…1 万円以下でいくらでもある。スティック型 Android 端末には 1 万円以上するハイスペックな製品もあるけれど、それだったらもう少し出して、素直に Nexus 7 の型落ちとかを買った方がいいと思う。ASUS Nexus 7 (2012) は 1.5万円で買える (さらにもうちょっとで ASUS MeMO Pad HD7 (ME173) が買える) のだから…まぁ用途にもよるけどね。

ICS のカスタマイズには (何故か) 慣れているので、届いたらイロイロといじってみるか。

Android-x86 4.4 RC2

リリースされていたので 4.0-R1 とマルチブートできるようにインストールしてみた。4.0-R1 の時の不満点がほぼ解消されている。

詳細は "Acer Aspire One with Android-x86" で。

ちなみに $7 で話題になった Keepod も x86 ベースの Android。

中身は x86 ベースの Android (Kitkat) をインストールした "只の USB メモリ" だと思うのだけれど…正直な話をすると、これって土台となる PC が相当限られると思うんだ (´・ω・`)

…Linux の方がよくね?


 BACK   古いのを読む   新しいのを読む