+#if !defined(_ATMO_VLC_PLUGIN_)
+
+void CAtmoZoneDefinition::SaveZoneBitmap(char *fileName)
+{
+ if(!fileName) return;
+
+ BITMAPINFO bmpInfo;
+ // BITMAPINFOHEADER
+ BITMAPFILEHEADER bmpFileHeader;
+ ZeroMemory(&bmpInfo, sizeof(BITMAPINFO));
+ bmpInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
+
+
+ bmpInfo.bmiHeader.biHeight = -CAP_HEIGHT;
+ bmpInfo.bmiHeader.biWidth = CAP_WIDTH;
+ bmpInfo.bmiHeader.biSizeImage = abs(bmpInfo.bmiHeader.biHeight) * bmpInfo.bmiHeader.biWidth * 3;
+
+ unsigned char *pBuf = (unsigned char *)malloc(bmpInfo.bmiHeader.biSizeImage);
+ for(int y=0; y < CAP_HEIGHT; y++ )
+ {
+ for(int x=0; x < CAP_WIDTH; x++)
+ {
+ pBuf[y * CAP_WIDTH * 3 + x * 3 ] = 0;
+ pBuf[y * CAP_WIDTH * 3 + x * 3 + 1 ] = m_BasicWeight[y * CAP_WIDTH + x];
+ pBuf[y * CAP_WIDTH * 3 + x * 3 + 2] = 0;
+ }
+ }
+
+ bmpInfo.bmiHeader.biCompression = BI_RGB;
+ bmpInfo.bmiHeader.biPlanes = 1;
+ bmpInfo.bmiHeader.biBitCount = 24;
+
+ bmpFileHeader.bfReserved1=0;
+ bmpFileHeader.bfReserved2=0;
+ bmpFileHeader.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+bmpInfo.bmiHeader.biSizeImage;
+ bmpFileHeader.bfType = MakeIntelWord('M','B');
+ bmpFileHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
+
+
+ FILE *fp = NULL;
+ fp = fopen(fileName,"wb");
+ fwrite(&bmpFileHeader,sizeof(BITMAPFILEHEADER),1,fp);
+ fwrite(&bmpInfo.bmiHeader,sizeof(BITMAPINFOHEADER),1,fp);
+ fwrite(pBuf,bmpInfo.bmiHeader.biSizeImage,1,fp);
+ fclose(fp);
+}
+
+void CAtmoZoneDefinition::SaveWeightBitmap(char *fileName,int *weight)
+{
+ if(!fileName || !weight) return;
+
+ BITMAPINFO bmpInfo;
+ // BITMAPINFOHEADER
+ BITMAPFILEHEADER bmpFileHeader;
+ ZeroMemory(&bmpInfo, sizeof(BITMAPINFO));
+ bmpInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
+
+
+ bmpInfo.bmiHeader.biHeight = -CAP_HEIGHT;
+ bmpInfo.bmiHeader.biWidth = CAP_WIDTH;
+ bmpInfo.bmiHeader.biSizeImage = abs(bmpInfo.bmiHeader.biHeight) * bmpInfo.bmiHeader.biWidth * 3;
+
+ unsigned char *pBuf = (unsigned char *)malloc(bmpInfo.bmiHeader.biSizeImage);
+ for(int y=0; y < CAP_HEIGHT; y++ )
+ {
+ for(int x=0; x < CAP_WIDTH; x++)
+ {
+ pBuf[y * CAP_WIDTH * 3 + x * 3 ] = 0;
+ pBuf[y * CAP_WIDTH * 3 + x * 3 + 1 ] = (unsigned char)weight[y * CAP_WIDTH + x];
+ pBuf[y * CAP_WIDTH * 3 + x * 3 + 2] = 0;
+ }
+ }
+
+ bmpInfo.bmiHeader.biCompression = BI_RGB;
+ bmpInfo.bmiHeader.biPlanes = 1;
+ bmpInfo.bmiHeader.biBitCount = 24;
+
+ bmpFileHeader.bfReserved1=0;
+ bmpFileHeader.bfReserved2=0;
+ bmpFileHeader.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+bmpInfo.bmiHeader.biSizeImage;
+ bmpFileHeader.bfType = MakeIntelWord('M','B');
+ bmpFileHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
+
+
+ FILE *fp = NULL;
+ fp = fopen(fileName,"wb");
+ fwrite(&bmpFileHeader,sizeof(BITMAPFILEHEADER),1,fp);
+ fwrite(&bmpInfo.bmiHeader,sizeof(BITMAPINFOHEADER),1,fp);
+ fwrite(pBuf,bmpInfo.bmiHeader.biSizeImage,1,fp);
+ fclose(fp);
+}
+
+
+#endif
+
+