3

私はグーグルで検索して説明するのが難しいこの状況になりました。

当社はアルミニウムに写真を印刷し、お客様に2つの選択肢を提供します。

  1. 最初の選択肢は、彼らが私たちに写真を与えたのと同じように彼らの写真をアルミニウムに印刷することです。したがって、写真の背景が白い場合、写真は白い背景で印刷されます。そのように簡単です。

  2. 2番目のオプションは、白を使用せずに画像を印刷できることです。すべての「白の値」(<-私が説明できる最善の値)を印刷する代わりに、透明のままにします。

ファブリックJSにこのremoveWhiteフィルターがあり、白い領域を透明な領域に置き換えることができることを私は知っています。しかし、これは私が必要としているものではありません。ピクセルの「白の値」を透明にすることができるFabricJSフィルター、ImageMagickのもの、またはその他のPHPまたはJSソリューションが必要です。このようなことは皆さんには非常に曖昧に聞こえるかもしれませんが、このように説明してみましょう。

  • 白いピクセルに出くわした場合は、それを透明にする必要があります。

  • 灰色のピクセルに出くわした場合は、それを白と黒の組み合わせから透明と黒の組み合わせに変える必要があります。

  • 色付きのピクセルを横切る場合は、「白の値」を変更する必要があります。これにより、光が透明になります。

これが私が達成しようとしているフィルター/効果の前後の例です:

前:

後:

私が何を求めているのかわからない場合は、遠慮なく質問してください。

4

2 に答える 2

1

そのため、Fabric.js にはまさにそれを行うフィルターがあります。

http://fabricjs.com/docs/fabric.Image.filters.RemoveWhite.html

var filter = new fabric.Image.filters.RemoveWhite({
  threshold: 40,
  distance: 140
});
image.filters.push(filter);
image.applyFilters(canvas.renderAll.bind(canvas));
于 2016-08-11T22:12:38.860 に答える