2

私は、始点ピクセル (x、y) (トリミングされた画像の左上隅) から終点ピクセル (x+w、x+h) (左下隅) まで .ppm ファイルをトリミングする C プログラムに取り組んでいます。トリミングされた画像)。

.ppm ファイルのデータは次の形式です。

rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb

scanf() を使用してこれを行うために、2 次元配列の使用を回避する簡単な方法はありますか?

4

2 に答える 2

5

簡単な方法の 1 つは、ファイルを読み込むときにピクセル座標を追跡することです。現在、切り取り領域にいる場合は、ピクセルを保存します。それ以外の場合はスキップします。

もっと派手にしたい場合は、各行の開始位置のバイト オフセットを計算し、それを探してから、行全体を読み取ります。

于 2011-03-07T15:18:31.990 に答える
0

警告、一部の pnm ファイルはバイナリ モードです (ファイルの内容の先頭にあるマジック ナンバーが異なります)。

たぶんpnmcropのソースを調べると役立つでしょうか?

于 2011-03-07T17:04:36.420 に答える