ピクセルのデータを扱うクラスがあるのなら,そのpixelClass型の要素が画像サイズ分だけ必要という話なのでしょうから,
そこにint**とかが候補として出てくる理由が謎です.
pixelClass** にして,「2次元配列」な形態(?)にこだわっても良いでしょうが,個人的には確保と解放が面倒なだけに思います.
画像のサイズW,Hをファイルから読み取った時点で,W*H個の要素を作れば良いのだから,
コード:
pixelClass *ImgPixels = new pixelClass[ W*H ]; //「1次元」ですが
とかで良いのではないでしょうか.これなら確保と解放が楽です.要素アクセスは
コード:
//座標(x,y)の要素
ImgPixels[ y*W + x ];
とすれば良いです.
毎度y*W+xとか書きたくないでしょうから,↓のように,画素アクセス手段を提供「画像クラス」でも作れば良いでしょう.メモリ管理も中に閉じ込められますし.
コード:
class MyImg
{
public:
//画素データへのアクセス手段.
//座標(x,y)の画素への参照を返す.
//※m_ImgW,m_ImgHを用いて領域外参照のチェックをするとかしても良いかと
pixelClass &At( int x, int y ){ return m_ImgPixels[y*m_ImgW + x]; }
const pixelClass &At( int x, int y ) const { return m_ImgPixels[ y*m_ImgW + x ]; }
private:
int m_ImgW; //画像サイズ(幅)
int m_ImgH; //画像サイズ(高さ)
pixelClass *m_ImgPixels; //画素データ群
};
オフトピック
(std::vectorとか使えばどうの…的な話はとりあえず置いておく)