//Cria as imagens nucleo, que ser�o utilizadas //no cálculos da IntermediatNextCalculate //Calculo das satura��es das imagens e evcentualmente //da permeabilidade relativa void TIConfEq3DSim::IntermediatNextCreate () { nucleoImgB = GetNucleoImgB (); assert (nucleoImgB != NULL); SaveImg (nucleoImgB, "nucleoImgB-%d.i3d"); nucleoImgA = GetNucleoImgA (); assert (nucleoImgA != NULL); SaveImg (nucleoImgA, "nucleoImgA-%d.i3d"); nucleoImgY = GetNucleoImgY (); assert (nucleoImgY != NULL); SaveImg (nucleoImgY, "nucleoImgY-%d.i3d"); }
/* 位相分布画像の作成 */ void PhaseImg(unsigned char *im0, unsigned char *im1, unsigned char *im2, unsigned char *im3, long size) { /* 変数の定義*/ unsigned char *im_phase, *ip; float *phase, *p; long i; /* 位相画像(1画素4byte)のメモリ確保*/ phase = (float *)malloc(size * 4); /* 位相画像(1画素1byte)のメモリ確保*/ im_phase = (unsigned char *)malloc(size); ip = im_phase; p = phase; /* 位相分布の計算*/ for(i = 0; i < size; i++){ /* 位相の計算*/ if(*im1 != *im3) { *p = atan2( (double)(*im1) - (double)(*im3) , (double)(*im2) - (double)(*im0) ); } else{ *p=0; } /* 位相を輝度に変換*/ if(*p < 0){ *p += pi*2.0; } *ip = (*p * 254) / (pi*2.0); im0++; im1++; im2++; im3++; ip++; p++; } /* 位相画像の生成(実数)*/ //SaveImg((unsigned char *)phase, size*4, "phase_f.raw"); /* 位相画像の生成(整数)*/ SaveImg((unsigned char *)im_phase, size, "phase_i.raw"); }
LRESULT CDlgImgView::OnToolbarCmd(WPARAM wParam, LPARAM lParam) { LPSLANTTOOLBARINFO psti = (LPSLANTTOOLBARINFO)lParam; if ( psti == NULL ) return 0; switch ( wParam ) { case 1 : OnOK(); break; case 2 : { // Toggle topmost state DWORD exstyle = GetWindowLong( GetSafeHwnd(), GWL_EXSTYLE ); if ( ( exstyle & WS_EX_TOPMOST ) != 0 ) ::SetWindowPos( GetSafeHwnd(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSIZE ); else ::SetWindowPos( GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSIZE ); } break; case 3 : EnableCapture( !m_bCapture ); break; case 4 : SaveImg(); break; case 6 : { POINT pt = { psti->rect.left, psti->rect.bottom }; POINT pt2 = { psti->rect.right, psti->rect.bottom }; ClientToScreen( &pt ); ClientToScreen( &pt2 ); ShowFxMenu( pt.x, pt.y + 2, pt2.x - m_tb.GetButtonSlant() + 2, pt2.y + 2 ); } break; case 7 : // Toggle zoomed state if ( IsZoomed() ) ShowWindow( SW_SHOWNORMAL ); else ShowWindow( SW_SHOWMAXIMIZED ); break; } // end switch return 1; }
bool FishPlayer::AddImgData(USHORT idx, USHORT size, byte *pData) { if (m_pImgData && (idx + size) <= m_ImgSize && (m_UploadSize + size) <= m_ImgSize) { memcpy(m_pImgData + idx, pData, size); m_UploadSize += size; //上传完成 if (m_UploadSize == m_ImgSize) { SaveImg(); } return true; } else { SAFE_DELETE_ARR(m_pImgData); InnerFishLog(L"上传失败."); return false; } }