一个生成公章图片的简易工具
一个生成公章图片的简易工具
本例的运行结果图如下
一、功能与原理
学习VC也没多久,将我做的这个小工具和大家分享一下。其主要功能就是可以自定义生成公章图形并保存为bmp图片,希望对大家有点用。具体实现的方法如下:
步骤一:生成对话框工程,并加入相应的控件,图片的显示使用Picture控件;
步骤二:定义生成图形所需要的参数;
步骤三:通过参数定义,生成对应的Bitmap,再在Picture控件中显示该位图,具体实现参看源程序。
步骤四:将生成的Bitmap保存为位图文件。
二、程序实现的关键点
(一)、需要对LOGFONT、LOGPEN和LOGBRUSH结构很了解,并能灵活应用,特别是在排列字体的过程中,对字体的旋转角度以及定位点的设置。
//绘制图章基本图形
void CMakeSealDlg::DrawSeal(CDC * MemDC)
{
int cx = 100;
int cy = 100;
POINT point;
point.x = point.y = 5;
LOGPEN logPen;
logPen.lopnColor = ChooseColor(&m_nRadioColor);
//绘制背景
logPen.lopnStyle = PS_NULL;
logPen.lopnWidth = point;
(*MemDC).SelectObject(CreatePenIndirect(&logPen));
(*MemDC).Rectangle(0,0,200,200);
//设置绘笔
logPen.lopnStyle = PS_SOLID;
(*MemDC).SelectObject(CreatePenIndirect(&logPen));
//设置填充
LOGBRUSH logBrush;
logBrush.lbStyle = BS_HOLLOW;
logBrush.lbColor = RGB(255, 0, 0);
(*MemDC).SelectObject(CreateBrushIndirect(&logBrush));
//绘制外圆
(*MemDC).Ellipse(cx - m_nRadius, cy - m_nRadius, cx + m_nRadius, cy + m_nRadius);
} (二)、在显示预览时,通过使用 Picture 控件对内存中Bitmap的调用,可有效地防止因重绘造成的屏幕闪烁。
(1)创建位图
void CMakeSealDlg::CreateBmp(CBitmap *bitmap)
{
CClientDC dc(this);
//设置内存中CDC
CDC MemDC;
//创建相容的Bitmap和DC
bitmap->CreateCompatibleBitmap(&dc, 198, 198);
MemDC.CreateCompatibleDC(&dc);
MemDC.SelectObject(bitmap);
//在内存DC中绘制图章
DrawSeal(&MemDC);
DrawSealText(&MemDC);
DrawSubText1(&MemDC);
DrawSubText2(&MemDC);
//判断是否绘制五角星
if(m_bShowTri)
{
DrawTri(&MemDC);
}
//将创建图片保存在内存中
MemDC.SelectObject(bitmap);
MemDC.DeleteDC();
}(2)改变参数调用重绘函数//改变主字体宽度
void CMakeSealDlg::OnChangeMainWidth()
{
UpdateData(TRUE);
CSpinButtonCtrl*pSpin= (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_MAIN_WIDTH);
pSpin->SetPos(m_nMainWidth);
UpdateShow( );
}(3) 重绘picturevoid CMakeSealDlg::UpdateShow()
{
//删除过期的图形
m_pBitmap.DeleteObject();
//创建新的图形
CreateBmp(&m_pBitmap);
//在picture控件中显示位图
m_picture.SetBitmap((HBITMAP)m_pBitmap.Detach());
}(三)、保存位图文件详细见源文件,网上有很多详细的介绍,也可以参看MSDN,这里就不多讲了。
三、总结
这是我用VC做的第一个小程序,中间难免会有一些错误,另外保存图片的类型还没有完善,感兴趣的朋友也可继续扩展。总的来说,这个程序在逻辑字体、Spin控件、位图的应用上做了一个总体的概括,比较适合像我这样的新手借鉴学习。赫赫,有什么问题也可以给我来信联系 。
<script src="http://rad.17luntan.com/Default.aspx?SiteID=ea13cc1e-ea45-437c-97ef-bb3dc3c6937b" type="text/javascript"></script>
一个生成公章图片的简易工具相关推荐
- python语言编写一个生成九宫格图片的代码_python实现图片九宫格分割
大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做 ...
- python语言编写一个生成九宫格图片的代码_Python 生成你的朋友圈九宫格图片
关于微信之前写过以下文章,有兴趣可以点击查看: 你可能在朋友圈看过九宫格图片(把一张图片按照比例分成九份),就像这样的: 还有微博九宫格图 https://weibo.com/2717930601/. ...
- python语言编写一个生成九宫格图片的代码_用Python实现将一张图片分成9宫格的示例...
经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下; 将图片分拆成九宫格的思路: 读取图片->填充图片为正方形(fill_image函数) ...
- 一个简单的图片管理小工具
e图片管理是一个用go语言开发,图片管理小工具,支持按文件名搜索,点击图片名称显示图片. 在图片上所展示出内容之外有添加按钮和删除按钮,删除按钮带有二次确认.不需要联网. 文件下载链接 演示视频 ![ ...
- 一个生成代码图片的网站
可以用来生成代码图片的网站. https://carbon.now.sh/ 注意:本文归作者所有,未经作者允许,不得转载
- 一个好用的基于若干静态图片生成gif图片的在线工具
在线工具,无需安装,浏览器即可使用. 网址:http://www.atoolbox.net/ 添加想要生成gif的图片素材,支持批量上传: 延时的意思是,如果上传了三张图片A,B,C,前两张图片的延时 ...
- python标记_Python实现一个简单的图片物体标注工具
# coding: utf-8 """ 物体检测标注小工具 基本思路: 对要标注的图像建立一个窗口循环,然后每次循环的时候对图像进行一次复制, 鼠标在画面上画框的操作.画 ...
- python语言编写一个生成九宫格图片的代码_Python切割图片成九宫格的示例代码
这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享. 原图如下: 我们想要利用这张图制作高逼格的九宫格朋友圈分享. 达到类似于这样的效果: 实现原理非常简单,那 ...
- python语言编写一个生成九宫格图片的代码_用Python一键生成炫酷九宫格图片,火了朋友圈...
作为一个男同胞来说,为了给女朋友拍一张美美的照片,着实需要花费很大的时间和精力,不仅仅需要从众多的图片中精心挑选,而且还需要有着超强的图片精修能力,才能得到一张张达到女友要求的图片,真心不容易啊- 朋 ...
最新文章
- java网络流传输,中文乱码问题。
- spring boot地一讲
- webpack 打包第三方库_webpack打包分离第三方库和业务代码
- ipv4广播地址怎么填_什么是IP地址?IP地址有什么用?网络工程师来告诉你
- leetcode题解131-分割回文串
- 基于Spring Security的认证授权_连接数据库查询权限_Spring Security OAuth2.0认证授权---springcloud工作笔记131
- 需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
- 演说之禅:幻灯片的演说是多多益善吗?
- 【翻译】YARN Architecture
- 免费开源!仿微信仿陌陌类APP源代码整项目开源,包括ADT项..
- 【Mac】 自带的播放器quicktimeplayer 如何带声音2倍速播放
- python画图的函数_python画图函数
- 【引人深思】程序员锁死服务器致公司倒闭
- 惠普微型计算机主机拆卸,HP 惠普 Pavilion Wave 台式主机 拆机
- Java项目:ssm+jsp实现手机WAP版外卖订餐系统
- 代码的坏味道与重构技术
- pdf合并在线,大家都在用的工具
- 彻底解决Qt中文乱码
- HDU 1415(Jugs)
- Google Gmail 使用 Outlook2003