タグ

ブックマーク / imaya.blog.jp (4)

  • Canvas でカラーハーフトーン : document

    8月21 Canvas でカラーハーフトーン はじめに ネット上で Photoshop にはカラーハーフトーンというフィルタがあることを知って、面白そうなので実装してみました。 適当にググってカラーハーフトーンフィルタを使った画像を見ながら「多分こういうものだろう」と考えて実装したものなので Photoshop のものとは大きく異なる可能性があります。 カラーハーフトーンってなに 元々は網点という印刷まわりの技法のようですが、Photoshop のものは完全に画像の効果としてあつかった方が良いみたいです。 ネットで使用例を見た感じ、各色ごとに指定された角度の正方形に画像を分割して、色の多いところは大きく、少ないところは小さく円を描いて水玉模様みたいにする効果だと思います。 実装1: 独自実装(わりとゴリ押し) (0, 0) から角度と正方形のサイズから dx, dy を計算してそれを加算し

  • JavaScript のビット演算子に unsigned を期待してはいけない : document

    2月4 JavaScript のビット演算子に unsigned を期待してはいけない はじめに ビット演算を利用するケースでは unsigned を期待することが多いと思うのですが JavaScript ではその期待は捨てたほうが良いです。(ただし >>> 演算子を除く) ここではその具体例と対策、簡単な説明をしていきたいと思います。 具体例 ではさっそく、例として 0x12345678 ^ 0xFFFFFFFF を見てみましょう。 (なぜ 32-bit かというと JavaScript のビット演算は 32-bit で行われるからです。) 0x12345678 は 2 進数表記にすると 0001 0010 0011 0100 0101 0110 0111 1000 になります。 これを XOR 0xFFFFFFFF で反転させるのですから、 下記のように計算して期待する値は 0xEDC

    wakuworks
    wakuworks 2014/07/10
  • Inflate 実装を作って PDF.js の凄さを思い知った話 (前編) : document

    4月25 Inflate 実装を作って PDF.js の凄さを思い知った話 (前編) はじめに まずは宣伝から。 このたび JavaScript で Inflate の実装を行いました! GitHubで公開中で MIT License です。(以前作った Deflate 実装もセットになってます) https://github.com/imaya/zlib.js このエントリーでは、来ならいかに自分の実装がスゴいかを紹介するところなのですが、前編では自分よりはるか以前に公開された PDF.js の Inflate 実装の素晴らしさを、最適化を進めるにつれて思い知ったのでご紹介させていただくことにします。 バッファ管理の効率の良さ 最初は気持ち悪いと思っていたのですが、一番よく考えてるなと思ったのがバッファ管理です。 PDF.js は Typed Array でバッファを持っているのですが

  • ブラウザのデコード機能を利用した Shift JIS などの読み込み : document

    3月12 ブラウザのデコード機能を利用した Shift JIS などの読み込み はじめに JavaScript でバイナリから文字列を取り出したら Shift JIS だったなんてことよくありますよね。 そういう文字列もさっと表示したいことがあります。 読み込む方法はいくつかある これらの文字列を読み込む方法はいくつかあって、自分が把握してるだけでも以下のものがあります。 Shift JIS と UTF-16 の対応表をつくる ぽりごんさんの文字コード変換ライブラリ Blob, File API を使って読み込む 右京さんの javascriptのnative APIで任意の文字コードからutf8に変換 script, Data URL を使って変換 1, 2 の方法についてはそれぞれ解説や実装があるのですが、3 の方法については見当たらなかったので説明してみます。 準備 念のため 2 段

    wakuworks
    wakuworks 2013/03/12
  • 1