我真的真的很感谢给我帮助的人。谢谢!
struct MyImage
{
BYTE* pImage;
int width;
int heigth;
};
MyImage* pMyImage = new MyImage;
pMyImage->pImage = new BYTE[width * heigth];
我应该这样做吗?
delete [] pMyImage->pImage;
还是我应该这样做?
delete[] pMyImage->pImage;
delete pMyImage;
希望你的想法和谢谢。
MyImage* transform(Bitmap &gdiImage)
{
MyImage* image=new MyImage;//新建一个MyImage
int height=gdiImage.GetHeight();
int width=gdiImage.GetWidth();
image->pImage=new BYTE[height*width];//为存储灰度图像数据分配内存
image->height=height;
image->width=width;
Color temp;
for(int y = 0;y < height; ++y)
for(int x = 0;x < width; ++x)
{
//获取当前GDI+图像坐标所指向的像素的颜色
gdiImage.GetPixel(x, y, &temp);
//将这个像素的灰度值赋给灰度图像对应的内存中的相应的字节
*(image->pImage + y * width + x) = transformPixel(temp.GetValue());
}
return image;
}
我的代码如下,这个函数将 gdiImage 转换为 struct MyImage。作为朋友说,如下,我不能新建MyImage和新建pImage,MyImage的元素。我应该怎么办?谢谢你