유틸리티

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
번호 분류 제목 글쓴이 날짜 조회 수
231 기타 베가스 12 한글 패치 버전 563 (Vegas Pro Kor Translation ver 563) 아방스 2013.05.07 20252
230 유틸리티 캠타시아 3.1 [한글패치포함]| 17 아방스 2007.11.10 17899
229 기타 윤디자인 웹돋움 폰트 (무료) file 아방스 2011.08.11 17847
228 포터블 R-Studio v5.4.134130(32bit) 한글패치 - 파일복구 아방스 2012.01.19 15466
227 기타 FocusWriter file Alkaid 2016.10.16 15291
226 RPG Maker XP 1.03 버전 한글화 실행파일.(7z 압축) 22 file 허걱 2009.01.28 10012
225 멀티미디어 파티클 일루젼 (particleIllusion]) 1 아방스 2011.05.25 9715
224 기타 윤디자인 웹바탕 폰트 file 아방스 2011.08.11 9164
223 유틸리티 [오캔] 오픈 캔버스 4.5 [한글판] + 4.5.17 [영문버전 도 같이] 10 아방스 2009.03.23 8915
222 유틸리티 오픈캔버스 1.1-b72 [한글판] 5 file 아방스 2007.11.10 8652
221 3D 입체 아이콘 프로그램 31 file ⌒_⌒ 2008.08.13 8285
220 기타 여성캐릭터 15 file BadGuy 2010.09.04 8208
219 기타 맥스(컴퓨터랑 대화하는프로그램) 36 file 밀크 2008.10.09 7887
218 유틸리티 스프라이트 툴 : Allegro Sprite Editor 0.7.2 + 단축키 한글 문서 포함 2 file yonggary 2009.10.24 7768
217 캐릭터매이커 37 NewSet 2009.01.16 7280
216 기타 3D RPG 메이커 [일어?] 18 아방스 2008.02.14 6859
215 RPG만들기 XP1.02a 버전 한글판 [설치버전 02] 9 아방스 2009.01.15 6773
214 유틸리티 도트용 포토샵, 그래픽스게일(Graphics Gale) + 한국어팩 6 file 파이니시 2012.08.24 6663
213 기타 윈도우 글꼴-산돌광수B 3 태양 2008.02.06 6654
212 유틸리티 시력 보호 프로그램 28 file 밀크 2008.10.09 6610
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 Next
/ 12