Web Analytics
yangyang

码农兼一个普普通通小青年

All Posts in 2025.12


使用C++和Qt从零开发一个光影边框程序

今年双十一的时候我买了一部微单相机,拍完照片后给照片添加“边框水印”变得更好看了。 在这类应用中我最喜欢的是壹印,不论是软件的界面设计,还是生成的水印风格。于是在Gemini的辅助下,我使用C++和Qt复刻了这一款类似壹印水印效果的程序。我有C#经验和一定的C++基础,但从没有使用C++和Qt开发过窗体程序。从最初依赖 FFmpeg 的臃肿工具,到现在拥有自适应纸张纹理、柔光阴影、且体积轻量的原生 C++ 应用,这个项目不仅是代码量的增加,更是对架构设计(策略模式)、性能优化(算法自研)和工程化思维(工具集成) 的一次完整实践。 …

Qt exiftool Yiyin ffmpeg Drop Shadow Outer Glow Diffuse Glow Shadow Ambient Shadow Multi-stage Downsampling Bloom Shadow

实现一个简单的基于语义的C#代码比较工具

代码比较功能在很多版本管理工具中都存在,比如Git和TortoiseSVN,Compare Beyond中也有。这个功能可以很方便的帮助我们查看代码的变更。目前这些工具都是简单的基于文本差异的比较。然而在有些时候,我们需要基于语义的比较,比如在代码中,我只是调整了方法的前后顺序、添加了一些注释、删除了一些语句之间的空格,或是将一个大的类使用partial关键字,拆分到多个源文件中。在这种情况下,传统的基于简单文本进行代码比较的方式则失去了应有的作用。我们需要保证代码的逻辑和正确定不变即可,而不关心代码的书写格式,比如行号,空格,注释,格式化这些。本文基于Roslyn实现了一个简单的基于语义的C#代码比较工具。 …

Roslyn Semantic Analysis