if(Clipboard()->HasFormat(CF_BITMAP))
{
Graphics::TBitmap * pBitmap = new Graphics::TBitmap;
pBitmap->Assign(Clipboard());
Image_Canvas->Width = pBitmap->Width;
Image_Canvas->Height = pBitmap->Height;
Image_Canvas->Picture->Assign(pBitmap);
delete pBitmap;
TCanvas * canvas = Image_Canvas->Canvas;
canvas->Brush->Style = bsClear;
canvas->Font->Assign(Label_Font->Font);
int angle = 45, horz = 100, vert = 100;
try
{
angle = Edit_Angle->Text.ToInt();
horz = Edit_Horz->Text.ToInt();
vert = Edit_Vert->Text.ToInt();
}catch(...) {}
UpdateFont(canvas, Label_Font->Font, 1, 1, 1, angle);
for(int x = 0; x < Image_Canvas->Width * 2; x += horz)
for(int y = 0; y < Image_Canvas->Height * 2; y += vert)
canvas->TextOut(x, y, Edit_Text->Text);
AnsiString bmpFileName = Edit_Path->Text;
if(!IsEndWith(bmpFileName, "//"))
bmpFileName += "//";
CreateDirectory(bmpFileName);
for(int i = 1; ; ++i)
{
AnsiString tempFileName = Format("%scbw%d%s",
ARRAYOFCONST((bmpFileName.c_str(), i, ComboBox_PicType->Text.c_str())));
if(!FileExists(tempFileName))
{
bmpFileName = tempFileName;
break;
}
}
bmpFileName = ChangeFileExt(bmpFileName, ".BMP");
Image_Canvas->Picture->SaveToFile(bmpFileName);
GlobalImageObject->OnCommand(Format("<request FileName='%s' Type='Set' />",
ARRAYOFCONST((bmpFileName.c_str()))));
GlobalImageObject->OnCommand(Format("<request Type='Set' ImageFormat='%s' />",
ARRAYOFCONST((ComboBox_PicType->Text.c_str()))));
if(!SameText(ComboBox_PicType->Text, ".bmp"))
DeleteFile(bmpFileName);
}
else
ShowMessage("剪贴板中没有www.2cto.com图片信息,请重试!");
if(Clipboard()->HasFormat(CF_BITMAP)) { Graphics::TBitmap * pBitmap = new Graphics::TBitmap; pBitmap->Assign(Clipboard()); Image_Canvas->Width = pBitmap->Width; Image_Canvas->Height = pBitmap->Height; Image_Canvas->Picture->Assign(pBitmap); delete pBitmap; TCanvas * canvas = Image_Canvas->Canvas; canvas->Brush->Style = bsClear; canvas->Font->Assign(Label_Font->Font); int angle = 45, horz = 100, vert = 100; try { angle = Edit_Angle->Text.ToInt(); horz = Edit_Horz->Text.ToInt(); vert = Edit_Vert->Text.ToInt(); }catch(...) {} UpdateFont(canvas, Label_Font->Font, 1, 1, 1, angle); for(int x = 0; x < Image_Canvas->Width * 2; x += horz) for(int y = 0; y < Image_Canvas->Height * 2; y += vert) canvas->TextOut(x, y, Edit_Text->Text); AnsiString bmpFileName = Edit_Path->Text; if(!IsEndWith(bmpFileName, "//")) bmpFileName += "//"; CreateDirectory(bmpFileName); for(int i = 1; ; ++i) { AnsiString tempFileName = Format("%scbw%d%s", ARRAYOFCONST((bmpFileName.c_str(), i, ComboBox_PicType->Text.c_str()))); if(!FileExists(tempFileName)) { bmpFileName = tempFileName; break; } } bmpFileName = ChangeFileExt(bmpFileName, ".BMP"); Image_Canvas->Picture->SaveToFile(bmpFileName); GlobalImageObject->OnCommand(Format("<request FileName='%s' Type='Set' />", ARRAYOFCONST((bmpFileName.c_str())))); GlobalImageObject->OnCommand(Format("<request Type='Set' ImageFormat='%s' />", ARRAYOFCONST((ComboBox_PicType->Text.c_str())))); if(!SameText(ComboBox_PicType->Text, ".bmp")) DeleteFile(bmpFileName); } else ShowMessage("剪贴板中没有图片信息,请重试!");
运行后,选项设置界面:

复制图片,点击粘贴后


图片文档自动命名保存在指定目录下

已达到预期效果,不担心不负责任的转载了(www.2cto.com是个很负责的站)。准备开始写本系列文章有兴趣的朋友可加入群208894875进行深入沟通
摘自 ArWen的专栏