|
save 전에 아래를 추가하십시요...
image2save->Picture->Bitmap->PixelFormat=pf8bit;
성철이 님이 쓰신 글 :
: 위의 질문이 너무 방대해서 빌더 예제 소스를 보고 나름 대로 수정해 보고 했는데 잘 안되는 군요.
: 예제를 보고 아래 소스처럼 코딩을 해봤는데 256비트로 변환 되지않고 15b로 변환 되더라구요!
: 고수님들 보시고 조언 부탁드립니다. 초보라 힘이 드는 군요ㅠㅠㅠㅠㅠㅠ
:
: void __fastcall TForm1::SB256_conversionClick(TObject *Sender)
: {
: TCanvas *tempCanvas = new TCanvas;
: try
: {
: HWND hdc = Image;
:
: TMyControl *pCtrl = (TMyControl *)Image;
: // tempCanvas->Handle = pCtrl->GetDeviceContext(hdc);
: tempCanvas->Handle = GetDeviceContext(hdc);
: TImage *image2save = new TImage(Form1);
: try
: {
: image2save->Height = Image->Picture->Height;
: image2save->Width = Image->Picture->Width;
:
: TRect destRect = Rect(0,0,pCtrl->Width,pCtrl->Height);
: TRect sourceRect;
: if (pCtrl->InheritsFrom(__classid(TWinControl)))
: sourceRect = destRect;
: else
: sourceRect = pCtrl->BoundsRect;
:
: image2save->Canvas->CopyRect(destRect, tempCanvas, sourceRect);
: Image->Canvas->CopyRect(destRect,tempCanvas, sourceRect);
:
: LogPal SysPal;
: SysPal.lPal.palVersion = 0x300;
: SysPal.lPal.palNumEntries = 256;
: GetSystemPaletteEntries(Image,0,256,SysPal.lPal.palPalEntry);
: image2save->Picture->Bitmap->Palette = CreatePalette(&(SysPal.lPal));
:
: // image2save->Canvas->Draw(0,0,Image->Canvas);
:
: if (SaveDialog1->Execute())
: image2save->Picture->SaveToFile(SaveDialog1->FileName);
:
:
: }
: __finally
: {
: // delete image2save;
: }
: }
: __finally
: {
: delete tempCanvas;
: }
: }
|