유틸리티

RPGXP 이상의 소스를 캐릭터 레이더로 수정하면 투명색이 없어져서 캐릭터를 넣으면 네모 배경색이 나오죠?

이걸 제거하러면 포토샵으로 옮겨서 투명색 입히고 다시 저장해야되는데

포토샵이 없으면 못할뿐더러 파일 용량도 늘어나고 무엇보다 저장한걸 캐릭터레이더로 다시 못열어서 난감했죠


이 프로그램은 캐릭터 레이더로 수정해저 저장한 PNG 그래픽 소재의 사라진 투명색을 복구시켜줍니다.

투명색이 복구된 파일은 캐릭터 레이더로 열 수 있으며 팔레트도 유지됩니다.


* 24 bpp의 png 파일을 고려하지 않았기 때문에 넣으면 문제가 생길 수도 있습니다.(애초에 24 bpp의 png를 여기에 돌릴 필요가 전혀 없긴 하지만...)





이거 원래 멀티스레딩 연습하려고 짠 프로그램인데 멀티 스레딩이 안되서 그냥 올림.

MFC 고수님 계시면 아래 코드 뭐가 잘못됬는지 말해주시고 코딩 방식에 대한 조언도 좀 부탁드림...

저 멘탈 터졌음


struct THREADPARAMS

{

CWaitWorkDlg * m_workdlg;

CListBox * m_DataListbox;

std::map<CString, CxImage> * m_DataMap; 

};


...


void CPractice3MultiThreadDlg::OnBnClickedButton3()

{

// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.

CWaitWorkDlg dlg;

dlg.m_iCompletedNum = dlg.m_iSucceedNum = dlg.m_iAlreadySucceedNum = 0;

dlg.m_iTotalNum = m_ctrListbox.GetCount();

THREADPARAMS * params = new THREADPARAMS;

params->m_workdlg = &dlg;

params->m_DataListbox = &this->m_ctrListbox;

params->m_DataMap = &this->m_mapImages;


::AfxBeginThread( Thread_Translate, params, 0, 

262144U);

if (dlg.DoModal() == IDOK) {} else {}

this->MessageBox(L"저장 완료.", L"끝남 :)");

}



UINT Thread_Translate(LPVOID pParam)

{

std::map<CString, CxImage> * pMap = ((THREADPARAMS *)pParam)->m_DataMap;

CWaitWorkDlg * pDialog = ((THREADPARAMS *)pParam)->m_workdlg;

std::map<CString, CxImage>::iterator iter; 

for(iter = pMap->begin(); iter != pMap->end(); )

{

CxImage * image = &iter->second;

if ( !image->AlphaPaletteIsValid() )

{

int i;

int nWidth = image->GetWidth();

int nHeight = image->GetHeight();


RGBQUAD quad;

quad = image->GetPaletteColor(0);

quad.rgbReserved = 0;

image->SetPaletteColor(0, quad);

for (i=1; i<256; ++i)

{

quad = image->GetPaletteColor(i);

quad.rgbReserved = 255;

image->SetPaletteColor(i, quad);

}

image->AlphaPaletteEnable(true);

if ( !image->Save(iter->first, CXIMAGE_FORMAT_PNG) )

{

++iter;

++pDialog->m_iSucceedNum;

}

else

{

++iter;

}

++pDialog->m_iCompletedNum;

}

else

{

++iter;

++pDialog->m_iCompletedNum;

++pDialog->m_iAlreadySucceedNum;

}

}

// 다이얼로그를 종료시키고 Modal 상태를 해제한다.

pDialog->EndDialog(IDCANCEL);

// pDialog->PostMessageW(WM_DESTROY); // <- 이것도 안됨

delete (THREADPARAMS *)pParam;

return 0;

}

 

Who's A.미스릴

profile

어드벤쳐는 선보류 후감상하고싶다...


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
211 유틸리티 사람 낚아주는 프로그램'headache' 39 아템 2008.02.29 6574
210 유틸리티 뷁어 번역기 욕 ㄴㄴ ㅋㅋ;; 17 白崎(시로사키) 2008.02.28 6511
209 유틸리티 PDF 변환 프로그램 (JPG,TIF,BMP,PNG,GIF)로 변환가능 file 아방스 2012.03.28 6461
208 RPG 만들기 VX RTP 런타임 패키지 오류 Access violation at address 뜰 때! 5 file 신동호 2009.01.13 6320
207 유틸리티 RPG만들기XP설명 10 RPGxp002 2008.08.31 6287
206 유틸리티 포토샵7.0 한글패치 13 독도2005 2008.03.09 6083
205 유틸리티 포토샵 링크가 없어서 직접 올립니다. 6 아방스 2007.11.10 6040
204 기타 2D 격투기 메이커 [한글판] 12 아방스 2008.02.14 5999
203 유틸리티 MIDI 파일을 8비트 음악으로 바꿔주는 "GXSCC" 입니다. 3 file sudoxe 2014.01.22 5866
202 유틸리티 컴퓨터화면을 4개로 분해해서 쓰자 28 file 밀크 2008.10.09 5781
201 기타 게임의정수를바꿔보자 ! 치트오매틱 4 file 파블렉 2009.02.22 5630
200 유틸리티 PDF-Pro 독도사랑2 1 file 독도2005 2009.08.13 5625
199 기타 화면을 뒤집어버리는 무서운 플그램 21 아템 2008.02.29 5594
198 유틸리티 바탕화면에 낙서하자! NoTouch한글 10 아템 2008.05.12 5584
197 유틸리티 도트용 포토샵, 그래픽스게일(Graphics Gale) 3 하진 2012.05.01 5565
196 유틸리티 이지-리네임 (EZ-Rename) 2.1b 버전 아방스 2010.08.31 5440
195 작업 관리자도 찾을 수 없는 프로그램 숨기는 파일 8 file Man... 2008.11.21 5423
194 3D 3D이미지 제작 프로그램 Anaglyph Maker 10 아방스 2010.08.17 5415
193 유틸리티 비주얼 베이직 6.0입니다. 11 창조자 신 2009.05.16 5401
192 유틸리티 Windows 7의 XP 가상화 모드, 내 컴퓨터는? 6 file 독도2005 2009.08.07 5321
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 Next
/ 12