問題タブ [scanline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5748 参照

delphi - delphiを使用してPNGImageをグレースケールに変換する

こんにちはここに私のコードがあります:

それは機能せず、写真が乱雑になります。これはrgbReservedが原因であると確信しています。私は何をすべきか?

0 投票する
2 に答える
4828 参照

c++ - Visual Studio 2010 での graphics.h の問題

Visual Studio 2010 を使用して C++ でスキャン ライン アルゴリズムを実際に実装する簡単なプログラムを作成していますが、graphics.h ファイルが見つからないというエラーが表示されます。誰かがその問題を解決する方法を教えてもらえますか? または他の方法 (graphics.h を使用せずに) を使用して、スキャン ライン アルゴリズムを実装します。

ありがとう !!!

0 投票する
1 に答える
2778 参照

c++ - qimage クラスの scanline 関数

ラスター グラフィックを編集するためのアプリケーションを開発しています。このアプリケーションでは、QImage クラスのスキャンライン関数と同じことを行うスキャンライン関数を作成する必要があります。しかし、スキャンライン関数の動作方法とスキャンライン全般については少し混乱しています。たとえば、高さが 177px の画像に対して bytesPerLine() を呼び出すと、値が 531 (ピクセルごとに 3 バイト) になると予想していましたが、この関数は 520 を返しますか?

また、 uchar data = image->scanLine(y)[x] 変数データの R=249 G=249 B=249 の値に 255 を使用すると、この値がよくわかりません。前もって感謝します :)

0 投票する
1 に答える
2513 参照

delphi - ScanLine を使用して赤/青のバイトをすばやく交換する方法

現在、Canvas.Pixels[]プロパティをループし、キャンバス上の各ピクセルを読み取って、赤/青のバイトを交換します (特定の理由により)。ただし、画像ごとに平均 2 秒かかり、8,000 枚以上の画像を変換する必要があります (一晩で)。の方法を使用してこれをはるかに高速に実行できることは理解してScanLineいますが、それについては何も知りませんScanLine。これは、私が慣れているよりもはるかに低いレベルのコーディングです。これを達成するための最速の方法は何ですか? これが実行されるまでしばらく待ちますが、その時間を半分またはそれ以上に分割できれば幸いです.

今、これは私が使用する手順です:

追加された注: 8,000 を超える画像の最初の変換は、これが必要な理由の最初のステップです。ただし、必要に応じて、ソフトウェアで同じことを使用して、その場で画像を自動的に変換します。したがって、これをクライアントに配布できないため、サードパーティのコンバーターは機能しません。

0 投票する
1 に答える
282 参照

qt - Qtで処理するためにグレースケールの画像の行を整数の配列に読み込みたい

行ごとに読み取り、(中央値を見つけるために) 処理したいグレースケール画像が 1 つあります。ファイルをロードして QImage を 1 つ作成しました。次に、scanline(x) を使用して行を読み取りました。しかし、私はいくつかの間違った値を取得しています (希望の値は 0-256 である必要があります)。Scanline() は、私が思う RGBA 値を取得します。この方法をグレースケールに使用する方法。または他の解決策をお願いします

ありがとう

0 投票する
1 に答える
3111 参照

delphi - PNG画像を他のPNGにペイントする

2つのPNGをマージする方法は?PNGObject.Drawアルファトランスアパーシーをコピーしないため(わかりませんが、とにかく機能しません)、使用できないことを知っています。そのため、カスタムの手順/機能が必要です。私は空の手で来ませんでした、私はこの手順を持っています:

しかし悲しいことに、それは本来の方法で機能しません。それは機能しますが、正しくありません。空の画像をロードされた画像とマージする場合は正常に機能しますが、両方の画像が空でない場合は、透明性が失われます。

希望する結果:

ここに画像の説明を入力してください

実結果:

ここに画像の説明を入力してください

これらの画像の違いがわかるかどうかはわかりませんが、PNGエディタソフトウェアでこれらを開くと、違いがわかります。したがって、PNGをマージするには他の手順が必要です。ちなみにの最新バージョンを使用PNGImageしています。

ありがとう、そして良い一日を!

0 投票する
2 に答える
3110 参照

delphi - TBitmap のスキャンライン アクセスを正しく実装する方法は?

Embarcaderoの記事に従って、ビットマップのスキャンラインにアクセスしようとしています。のようなスキャンラインの使用

以前に実施しました。スキャンラインへのアクセスに比較的時間がかかることに気付きました。上記の記事はその解決策を提供しています。正しく実装できません。私のコードは次のとおりです。

また、y=1 かつ x=0 の場合、常に不正アクセスが発生します。LineLength は負の値 (ビットマップの幅) ですが、これは予想されることです。私は何を間違っていますか?

編集:上記のコードは、これまでに処理されたコメントを反映するように変更されています。

0 投票する
1 に答える
222 参照

bmp - BMP スキャンラインのバイト順

それがBGRで、次にNULLなのか、それともBGRBGR->で、幅を4の倍数にするために最後にNULLなのかはわかりません。御時間ありがとうございます。

0 投票する
1 に答える
5531 参照

c++ - スキャンラインポリゴンフィルアルゴリズム

スキャンラインベースのポリゴン塗りつぶしアルゴリズムを実装しています。私は一般的なアルゴリズムを知っており、現在C++で実装しようとしています。

エッジテーブルをアクティブなエッジリストに実装する必要があります。

アクティブエッジリストをベクトルにして、動的に簡単に挿入および削除できるようにしました。

ただし、エッジテーブルはもう少し混乱します。

ベクトルの配列を使用してエッジテーブルを実装しようとしています。ベクトルには、作成した構造体が含まれます。

これが構造体です。

渡された頂点の配列を反復処理するforループがあり、バケットを作成して、エッジのyminインデックスでエッジテーブルにバケットを挿入します。

私の問題は、エッジテーブルをループして個々のバケットにアクセスするのに苦労していることです。

バケットのベクトルの配列の宣言は次のとおりです。

これが、アイテムを印刷しようとしてエッジテーブルを反復処理するforループです。インデックスにイテレータと通常のintを使用しようとしましたが、各バケットの値を出力しようとするとどちらも機能しません。

0 投票する
1 に答える
2613 参照

javascript - ソフトウェアレンダラーにZバッファリングを実装する最速の方法は?

私はjavascriptソフトウェアレンダラーを実装しています(学術目的で)。3Dオブジェクトを三角形として表現し、3D空間から2D空間へのパースペクティブプロジェクションを処理します。

これまで、 画面上の頂点と線を表すためにlineToとを使用していました。fillRectlineToはスキャンラインの三角形の塗りつぶしを行ったことさえあります。(ここでプロジェクトをチェックできます)

これまでのところ、FPSは非常に良好です。ただし、割り当ての最後の部分は、z-Buffering:Pを実装することです。私の知る限り、これを行う唯一の方法は、を使用して三角形をlineTo塗りつぶすのをやめ、1pxの線の配列または1pxの正方形の配列のいずれかで三角形を塗りつぶすことです。(各「ピクセル」を描画する前に、深度バッファーをチェックして、実際に描画する必要があるかどうかを確認する必要があるためです。)

問題は、三角形を小さな長方形や線で塗りつぶすのが遅いことです。すべてを2FPSまで取得します。だから私の質問は、小さな線の代わりに1つのピクセルを描く方法はありますか(より速いかもしれません)?

あるいは、物事をスピードアップするために他に何ができますか?私の目標は、原理をデモするのに十分な速さで回転させることです。(6-10fpsで十分です)

乾杯。

[編集]答えを待つ間、三角形の塗りつぶし機能を変更して、1pxではなく4pxサイズの「ピクセル」を描画します。しかし、それはギザギザに見えます...