虹软实习(2) 被开 代码 RunStarEffect

本文详细介绍了在虹软实习期间处理图像效果的代码实现,包括对比度饱和度调整、颜色过滤和星效处理。通过RunEngine函数,展示了如何应用星效参数,并对编辑框中的数值进行读取,最后调用处理函数完成图像效果。
摘要由CSDN通过智能技术生成

 BOOL
CBasicPanel::RunEngine(BYTE * pResultData)
{
 m_bRunEngine = TRUE;
 //if m_nContrast == 0 ,engine do not effect
 m_pRunContrastSaturationImage(pResultData,RectWIDTH(g_pCommonParam->inRect),RectHEIGHT(g_pCommonParam->inRect)
         ,g_pCommonParam->dispRowBytes,m_nContrast,m_nSaturation);
 
 if(m_ColorFilter.nFilterB != 255 || m_ColorFilter.nFilterG != 255 || m_ColorFilter.nFilterR != 255)
 {
  m_pRunPhotoFilterImage(pResultData,RectWIDTH(g_pCommonParam->inRect),RectHEIGHT(g_pCommonParam->inRect)
        ,g_pCommonParam->dispRowBytes,m_ColorFilter.nFilterR,m_ColorFilter.nFilterG,m_ColorFilter.nFilterB
        ,m_nOpacity,m_bKeepLumonisity);
 }
 
 //CROSS processed film
 if(!m_pRadgAdvance)
        return FALSE;
 char sName[64] = {0};
 m_pRadgAdvance->GetTurnOnRadioName(sName);
 if(strcmp(sName,RADIO_CROSS) == 0)
 {
    //StarEffect======================initialization
//LRESULT ret;
//long width,height,nBitCount,nPitch;
        MLong number=5,angel=0,length=8,width=0.1;
  //MLong* pNumber=NULL,pAngel=NULL,pLength=NULL,pWidth=NULL;
  MLong *pNumber=&number;
  MLong *pAngel=&angel;
  MLong *pLength=&length;
  MLong *pWidth=&width;
  TCHAR szText[10]={0};
//  m_pStarEffectParam->GetEditInfo(EDT_NUMBER,pNumber);
//  MLong number=(MLong)(*pNumber);
   m_pStarEffectParamNumber= (MagEdit*)m_pPanel->GetElementByName("number_cedit",TRUE);//
   m_pStarEffectParamNumber->_MagText()->GetText(szText,10);
    number=_tstoi(szText);
   m_pStarEffectParamNumber= (MagEdit*)m_pPanel->GetElementByName("angel_cedit",TRUE);//
   m_pStarEffectParamNumber->_MagText()->GetText(szText,10);
    angel=_tstoi(szText);
   m_pStarEffectParamNumber= (MagEdit*)m_pPanel->GetElementByName("length_cedit",TRUE);//
   m_pStarEffectParamNumber->_MagText()->GetText(szText,10);
    length=_tstoi(szText);
   m_pStarEffectParamNumber= (MagEdit*)m_pPanel->GetElementByName("width_cedit",TRUE);//
   m_pStarEffectParamNumber->_MagText()->GetText(szText,10);
    width=_tstoi(szText);
 //  m_pStarEffectParamNumber->GetEditInfo(EDT_NUMBER,pNumber);
   PubMagic::MagText* pText=(MagText*)m_pStarEffectParamNumber;
   //TCHAR* lpTextBuf=(TCHAR*)malloc(sizeof(MLong));
   if(!m_pStarEffectParamNumber)
                OutputDebugStringA("555555555555555555555");
  //Mag0Inter(m_pStarEffectParamNumber, SELTXT, WP_SELTXT_GETTEXTW, sizeof(MLong), pNumber);
  //Mag0Inter(pText, SELTXT, WP_SELTXT_GETTEXTW, sizeof(MLong), lpTextBuf);
  //number=nnn;
   if(*pNumber==0)
               OutputDebugStringA("555555555555555555555");
   if(number==5)
    OutputDebugStringA("555555555555555555555");

    m_pStarEffectParamAngel= (MagEdit*)m_pPanel->GetElementByName("angel_cedit",TRUE);//
   if(!m_pStarEffectParamAngel)
                OutputDebugStringA("555555555555555555555");
 //  Mag0Inter(m_pStarEffectParamAngel, SELTXT, WP_SELTXT_GETTEXTW, sizeof(MLong), pAngel);

 //   m_pStarEffectParamLength= (MagEdit*)m_pPanel->GetElementByName("length_cedit",TRUE);//
 //  Mag0Inter(m_pStarEffectParamLength, SELTXT, WP_SELTXT_GETTEXTW, sizeof(MLong), pLength);

 //   m_pStarEffectParamWidth= (MagEdit*)m_pPanel->GetElementByName("width_cedit",TRUE);//
 //  Mag0Inter(m_pStarEffectParamWidth, SELTXT, WP_SELTXT_GETTEXTW, sizeof(MLong), pWidth);

HANDLE phEffect=NULL;

void* memBuffer=malloc(20 *1024);
//void* memBuffer=g_pCommonParam->inDataBufID;
//HANDLE memHandle= MMemMgrCreate(memBuffer,sizeof(*memBuffer));
HANDLE memHandle= MMemMgrCreate(memBuffer,20 * 1024);

ASE_OFFSCREEN ImgIn=
{
 RectWIDTH(g_pCommonParam->inRect),
 RectHEIGHT(g_pCommonParam->inRect),
 ASE_PAF_B8G8R8,
 g_pCommonParam->inRowBytes,
    pResultData
};

 


ASE_OFFSCREEN ImgOut=
{
 RectWIDTH(g_pCommonParam->inRect),
 RectHEIGHT(g_pCommonParam->inRect),//bottom-top
 ASE_PAF_B8G8R8,
 g_pCommonParam->dispRowBytes,
    pResultData
};

/*PVOID pNumber=NULL,pAngel=NULL,pLength=NULL,pWidth=NULL;
m_pRadgAdvance->GetEditInfo(EDT_NUMBER,pNumber);
m_pRadgAdvance->GetEditInfo(EDT_NUMBER,pAngel);
m_pRadgAdvance->GetEditInfo(EDT_NUMBER,pLength);
m_pRadgAdvance->GetEditInfo(EDT_NUMBER,pWidth);*/


//ASE_PARAM Param={5,0,8,0.1};
ASE_PARAM Param={number,angel,length,width};

 

//StarEffect
//===========================

//  m_pRunCrossProcessingImage(pResultData,RectWIDTH(g_pCommonParam->inRect),RectHEIGHT(g_pCommonParam->inRect),g_pCommonParam->dispRowBytes);  
        m_pRunCrossProcessingImage(memHandle,phEffect,&ImgIn,&ImgOut,&Param,NULL,NULL);
//  m_pRunCrossProcessingImage(pResultData,RectWIDTH(g_pCommonParam->inRect),RectHEIGHT(g_pCommonParam->inRect),g_pCommonParam->dispRowBytes);  
 //       m_pRunCrossProcessingImage(memHandle,phEffect,&ImgIn,&ImgOut,&Param,NULL,NULL);
 }
 else if((strcmp(sName,RADIO_BW) == 0))
 {
  m_pRunBlackAndWhite(pResultData,RectWIDTH(g_pCommonParam->inRect),RectHEIGHT(g_pCommonParam->inRect),g_pCommonParam->dispRowBytes);
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值