分辨率问题。
我在程序中读出一背景图,然后在把它画到缓冲区中,最后在缓冲区输出文本保存。请问大家分辨率会不会改变。(photoshop中”图象大小“属性中的分辨率由原来的300变为72)程序如下:
TJPEGImage *pBackImage = new TJPEGImage;
TImageShowForm *Dlg = new TImageShowForm(this);
AnsiString strName , strCode , strPY;
TPrinter *pPrint = Printer();
std::auto_ptr<TFont> pNameFont(new TFont) , pPYFont(new TFont) , pCodeFont(new TFont);
pNameFont->Name = "黑体";
pNameFont->Size = 55;
pNameFont->Style << fsBold;
pPYFont->Name = "黑体";
pPYFont->Size = 45;
pPYFont->Style << fsBold;
pCodeFont->Name = "黑体";
pCodeFont->Size = 40;
pCodeFont->Style << fsBold;
pBackImage->LoadFromFile("bg.jpg");
Dlg->Show();
for(m_Data->First() ; !m_Data->Eof ; m_Data->Next())
{
std::auto_ptr<Graphics::TBitmap> pMemBitmap(new Graphics::TBitmap) , Photo(new Graphics::TBitmap);
std::auto_ptr<TStream> pStream;
pMemBitmap->Assign(pBackImage);
SetBkMode(pMemBitmap->Canvas->Handle , TRANSPARENT);
strName = m_Data->FieldByName("Name")->AsString;
strCode = m_Data->FieldByName("Code")->AsString;
strPY = m_Data->FieldByName("PY")->AsString;
pStream.reset(m_Data->CreateBlobStream(m_Data->FieldByName("Photo"), bmRead));
Photo->LoadFromStream(pStream.get());
pMemBitmap->Canvas->Draw(100 , 215 , Photo.get());
pMemBitmap->Canvas->Font = pNameFont.get();
TextOut(pMemBitmap->Canvas->Handle , 400 , 270 , strName.c_str() , strName.Length());
pMemBitmap->Canvas->Font = pPYFont.get();
TextOut(pMemBitmap->Canvas->Handle , 400 , 360 , strPY.c_str() , strPY.Length());
pMemBitmap->Canvas->Font = pCodeFont.get();
TextOut(pMemBitmap->Canvas->Handle , 400 , 460 , strCode.c_str() , strCode.Length());
//pMemBitmap->Transparent = FALSE;
/*
pPrint->BeginDoc();
pPrint->Canvas->Draw(0 , 0 , pMemBitmap.get());
pPrint->EndDoc();
*/
{
std::auto_ptr<TJPEGImage> pSave(new TJPEGImage);
pSave->Assign(pMemBitmap.get());
pSave->SaveToFile("test.jpg");
}
// Dlg->Canvas->Draw(0 , 0 , pMemBitmap.get());
}
MessageBox(Dlg->Handle , "完成" , "提示" , MB_OK);
delete Dlg;
delete pBackImage;