- 博客(33)
- 资源 (2)
- 收藏
- 关注
原创 C++将32位深图片处理成灰度图
计算公式为:灰度 = RED * 0.299 + GREEN * 0.587 + BLUE。拿到像素值后对像素做灰度化处理,根据RGB颜色的权重计算灰度值。
2024-09-19 12:49:23 144
原创 C++实现BMP图像旋转90度
先定义两个结构,BMP文件头结构跟BMP信息头结构。另外如果嫌弃处理速度慢也可使用SSE算法优化处理。拿到像素后之后做旋转操作:此处按32位深处理。
2024-09-19 12:38:57 170
原创 使用soui4绘制五边形跟五角星
五边形填充跟五角星填充一样,不止这些其他的填充都一样。主要就是创建一个渐变画刷然后填充。五角星只是在五边形的基础上算出连接点再将这些点连起来绘制一个多边形。绘制的最核心的部分就是定位点的计算,然后将点连起来绘制一个多边形。
2024-09-18 14:44:50 360
原创 soui4中拓展spinButton控件使其支持double类型或者其他类型
主要的地方就是先获取按下的状态根据自身的业务做加减操作或者递增递减操作。将spin控件点击事件跟edit关联起来。2、在布局中使用控件。
2024-09-11 12:47:33 223
原创 使用Zlib库进行多文件或者多文件夹的压缩解压缩
zlib库可在git上自己clone下来然后使用cmake工具生成解决方案,编译、生成zlib二进制文件。
2024-09-06 14:18:05 411
原创 使用soui4实现一个打印排版软件(十三)PDF元素控件实现
PDF元素的移动、拉伸参考rect的实现,这里我们主要看看PDF的绘制部分代码。我这边的做法是先将PDF页面生成一张图片,然后跟图片控件一样进行贴图展示。关于PDF的解析这边使用了第三方开源库mupdf。以上就是PDF控件的实现以及使用。先注册,再在容器中创建元素。
2024-09-03 13:13:07 518
原创 使用soui4实现一个打印排版软件(十二)图片元素控件实现
图片元素的移动、拉伸参考rect的实现,这里我们主要看看图片的绘制部分代码。超级简单的就是加载图片然后把图片贴到对应的区域。以上就是图片控件的实现以及使用。先注册,再在容器中创建元素。
2024-09-03 10:07:09 161
原创 使用soui4实现一个打印排版软件(十一)二维码元素控件实现
以上就是二维码控件的实现以及使用,此处只实现了QRCODE码,其他的诸如DATAMATRIX、PDF417等码制可参考二维码的实现方式实现。二维码元素的移动、拉伸参考rect的实现,这里我们主要看看二维码的绘制部分代码。先注册,再在容器中创建元素。
2024-09-03 09:35:38 578
原创 使用soui4实现一个打印排版软件(七)UPCA码实现
第一部分的绘制区域为条码开始区域至第一个线条的位置,第二部分为第四个线条右侧至第15个线条的左侧,第三部分为第16个线条的右侧至第27个线条的左侧,第三部分为倒数第一个线条的右侧至条码区域的结束位置。对于文本的绘制与CODE128码不同的是文本绘制需要分为4部分;第一部分是首位、第二部分为2-6位、第三部分为7-11位、第四部分为校验位。以下是关于UPCA、UPCE、EAN8、EAN13等长短不一以及文本分开的码制条码的实现。以上即为UPCA码条码的绘制。
2024-09-02 16:57:22 401
原创 使用soui4实现一个打印排版软件(六)条形码元素控件
以上就是条码控件的实现以及使用,此处只实现了CODE128码,其他码制的实现类似。需要注意的是这里文本跟条码的绘制是分开绘制的。如果是EAN8、EAN13、UPCA或者UPCE此类长短不一的线条还需要做特殊的处理。条码元素的移动、拉伸参考rect的实现,这里我们主要看看条码的绘制部分代码。条码生成使用了开源库zint。该库实现了全部的常用码制。先注册,再在容器中创建元素。
2024-09-01 15:51:08 611
原创 使用soui4实现一个打印排版软件(五)文本元素控件
移动以及拉伸处理跟rect元素一样。不一样的地方就在绘制的实现。效果如下:自上而下依次为单行文本、多行文本、填充文本。
2024-08-31 17:36:41 140
原创 使用soui4实现一个打印排版软件(四)椭圆、圆、三角形、菱形元素控件
椭圆、圆、三角形、菱形元素的移动以及拉伸处理跟rect元素一样。2、往画板容器中放置元素。
2024-08-30 13:13:08 611
原创 使用soui4实现一个打印排版软件(三)为元素增加拉伸移动操作
在基类CEleBase中定义操作点、鼠标光标以及操作点计算相关代码。以矩形元素为例,为其增加移动、拉伸大小相关功能。在Rect元素中绘制操作点。
2024-08-30 11:02:33 236
原创 拓展SOUI中SImRichEdit控件的视频OLE控件(VideoOle)
视频定位控件数据可分为两部分:可见部分:播放按钮、加载按钮、视频第一帧图片、视频时长不可见部分:视频URL以下为VideoOle控件头文件部分: extern "C" const GUID IID_VideoOleCtrl; class RichEditVideoOle :public RichEditOleBase { DECLARE_REOBJ(RichEditVideoOle, L"...
2018-03-26 14:14:15 542
原创 拓展SOUI中SImRichEdit控件的定位OLE控件(LocationOle)
定位控件可以分为两个部分:展示部分:包括展示定位图片、定位标题、定位地址;数据部分:当前地址纬度(latitude)、经度(longitude);以下为LocationOle控件的头文件部分: extern "C" const GUID IID_LocationOleCtrl; class RichEditLocationOle :public RichEditOleBase { DECL...
2018-03-22 19:28:13 778
原创 拓展SOUI中SImRichEdit控件的语音OLE控件(AudioOle)
extern "C" const GUID IID_AudioOleCtrl; class RichEditAudioOle :public RichEditOleBase { DECLARE_REOBJ(RichEditAudioOle, L"audio") public: enum ReAudioState { REAUDIO_STATE_NOPLAY, // 未播...
2018-03-21 16:58:36 553
原创 SOUI中事件中心的使用
在soui中为了方便将工作者线程中的处理结果及时反馈到UI线程设计了事件中心来解决此类问题。在使用事件中心需要注意的事项如下:首先, 要new一个事件中心对象,既然new了对象当然就要delete,相关代码如下: SNotifyCenter *pNotifyCenter = new SNotifyCenter; // BLOCK: Run application
2017-10-31 15:23:18 1414 3
原创 使用GDIPlus模仿实现QQ截图
开发环境:系统:Win7 64bits;编译器:Visual Studio 2008 + SP1;相关技术:MFC, GDIPlus我们先来说说截图的原理;截图无非就是获取屏幕某个时间点的快照,然后再对此快照进行各种我们自己想要的操作,以达到我们自己想要的效果以下为获取屏幕快照的相关代码://拷贝屏幕到位图中HBITMAP CCaptureSc
2017-03-15 13:34:14 1251
Snapshot截图工具
2018-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人