2011-09-05 8 views
7

キャンバスを使用しているペイントアプリケーション で作業しています。選択した領域にのみ描画するオプションをユーザーに許可します。そのためにはclip()メソッドを使用することができます。 しかし、もし私がユーザーが文字の中に絵を描くことができるようにしたいのであれば、テキスト用にclip()を使う方法はありますか? 私はそれを行うことができる別の方法はありますか?htmlキャンバス:クリッピングとテキスト

おかげ

+0

を新しく作成された効果を置くために、テキスト

  • 使用drawImage(in-memory-canvas, x, y)にクリップしたいものを描きます理解できません "しかし、私はユーザーが内側の文字を描画することができるようにしたい場合は"部分 –

  • 答えて

    11

    あなたはこれを行うが、クリップを使用することはできません。クリップはパスでのみ動作し、テキストはパスではありません。

    効果を実現するには、2番目のメモリ内(キャンバス上ではない)キャンバスを使用する必要があります。

    1. 、メモリ内のキャンバスを作成し、テキスト
    2. メモリ内のコンテキストの設定という点で、メモリキャンバス
    3. にテキストを描画を収容可能な幅と高さに設定します。ここではどのようにあります「ソースの」
    4. にglobalCompositeOperationは、あなたが私はあなたの通常のキャンバスに
    +0

    素晴らしい答え!ありがとうございました –

    +0

    よく、それはいくつかの問題を作り出しています。私が100%未満のアルファ色で「クリップされた」テキストを描くと、より高いアルファ%カラーで同じピクセルを再び描画することはできません。 –

    関連する問題