bcb 6.0 里怎么通过一批数据来显示图像
bcb 6.0 里如何通过一批数据来显示图像

我现在从一个模块里采集得到一批数据,数据的大小是256X288个像素,我在BCB6.0里想用Image控件来显示这张图片,这要怎么弄。得到的数据是16进制的数据。谢谢各位!
------解决方案--------------------
用tchart画曲线,可以直接从数据库加载数据。
------解决方案--------------------
1、确认图片格式
2、创建对应格式的空文件
3、把数据存到新创建的文件里
4、加载该文件
------解决方案--------------------
加文件头。
借花献佛,下面的是灰度图像,你参考一下吧,建议先搜索一下bmp的文件头看看
unsigned int buffer[sizeof(BITMAPINFOHEADER) + 1024];
BITMAPINFO* bmi = (BITMAPINFO*)buffer;
int bmp_w = pImage->m_nWidth;
int bmp_h = pImage->m_nHeight;
BITMAPINFOHEADER* bmih = &(bmi->bmiHeader);
memset( bmih, 0, sizeof(*bmih));
bmih->biSize = sizeof(BITMAPINFOHEADER);
bmih->biWidth = bmp_w;
bmih->biHeight = -abs(bmp_h);
bmih->biPlanes = 1;
bmih->biCompression = BI_RGB;
SetStretchBltMode( pDC->GetSafeHdc(), HALFTONE );
unsigned char* imageData;
bool deleteImageData;
imageData = (unsigned char*)pImage->GetDataPtr();
deleteImageData = false;
//if image is not a true color one, such as grayscale image, we should create a grayscale pallette
if( pImage->m_nChannels == 1 )
{
bmih->biBitCount = 8;
RGBQUAD* palette = bmi->bmiColors;
int i;
for( i = 0; i < 256; i++ )
{
palette.rgbBlue = palette.rgbGreen = palette.rgbRed = (BYTE)i;
palette.rgbReserved = 0;
}
}
else
{
bmih->biBitCount = pImage->m_nChannels * 8;
}
int sw = (bmp_w > 0) ? bmp_w : 0;
int sh = (bmp_h > 0) ? bmp_h : 0;
int res = StretchDIBits(
pDC->GetSafeHdc(),//dc
0, //x dest
0, //y dest
我现在从一个模块里采集得到一批数据,数据的大小是256X288个像素,我在BCB6.0里想用Image控件来显示这张图片,这要怎么弄。得到的数据是16进制的数据。谢谢各位!
------解决方案--------------------
用tchart画曲线,可以直接从数据库加载数据。
------解决方案--------------------
1、确认图片格式
2、创建对应格式的空文件
3、把数据存到新创建的文件里
4、加载该文件
------解决方案--------------------
加文件头。
借花献佛,下面的是灰度图像,你参考一下吧,建议先搜索一下bmp的文件头看看
unsigned int buffer[sizeof(BITMAPINFOHEADER) + 1024];
BITMAPINFO* bmi = (BITMAPINFO*)buffer;
int bmp_w = pImage->m_nWidth;
int bmp_h = pImage->m_nHeight;
BITMAPINFOHEADER* bmih = &(bmi->bmiHeader);
memset( bmih, 0, sizeof(*bmih));
bmih->biSize = sizeof(BITMAPINFOHEADER);
bmih->biWidth = bmp_w;
bmih->biHeight = -abs(bmp_h);
bmih->biPlanes = 1;
bmih->biCompression = BI_RGB;
SetStretchBltMode( pDC->GetSafeHdc(), HALFTONE );
unsigned char* imageData;
bool deleteImageData;
imageData = (unsigned char*)pImage->GetDataPtr();
deleteImageData = false;
//if image is not a true color one, such as grayscale image, we should create a grayscale pallette
if( pImage->m_nChannels == 1 )
{
bmih->biBitCount = 8;
RGBQUAD* palette = bmi->bmiColors;
int i;
for( i = 0; i < 256; i++ )
{
palette.rgbBlue = palette.rgbGreen = palette.rgbRed = (BYTE)i;
palette.rgbReserved = 0;
}
}
else
{
bmih->biBitCount = pImage->m_nChannels * 8;
}
int sw = (bmp_w > 0) ? bmp_w : 0;
int sh = (bmp_h > 0) ? bmp_h : 0;
int res = StretchDIBits(
pDC->GetSafeHdc(),//dc
0, //x dest
0, //y dest