検索

ホームページ  >  に質問  >  本文

JavaScript - キャンバスの空の領域を切り取る

を使用して電子署名を作成しましたが、ユーザーが署名した後のスペースが多すぎます。空白スペースをキャプチャする方法はありますか? canvasオリジナル画像のサンプル:

署名処理中にマウスが通過した領域を取得し、以下に示す赤い領域の座標を取得しました。

それを img オブジェクトに渡し、

に描画して赤い領域をトリミングします。 img 对象,再绘制到 canvas

他に方法はありますか?

ありがとうございます!

黄舟黄舟2775日前1051

全員に返信(5)返信します

  • 滿天的星座

    滿天的星座2017-05-16 13:28:16

    まず、これは実行できます。 canvas.getContext('2d').getImageData(0, 0, 宽, 高)これは、データ属性を持つ現在のキャンバスの画像データ オブジェクトを返します。この 1 次元配列では、4 つの添え字ごとに R が表されます。作者は境界を見つけるために G、B、A の値を走査するだけで済みます。 以下は疑似コードの実装です。 リーリー

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:28:16

    ImageData を使用してピクセルを 1 行ずつスキャンし、左上隅と右下隅の座標、または右上隅と左下隅の座標を維持します。

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:28:16

    リーリー

    返事
    0
  • 为情所困

    为情所困2017-05-16 13:28:16

    単純にカーバスを拡大するだけでは、あなたのニーズを満たすことができるかわかりません。
    オリジナルのポスターは、赤いボックス内の写真を取得したことを意味し、写真の幅と高さを知り、画像を計算することができます。カーバスの幅と高さに基づいてカーバスを拡大します。 拡大率は ctx.scale(widthScale, heightScale) メソッドで設定します。
    その後、ctxが画像を描画します。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:28:16

    投稿者はそれを解決しましたか? 指定された座標を持つ長方形の画像を取得しますか?

    返事
    0
  • キャンセル返事