迅雷Bolt库中的图像拉伸的效果锯齿比较严重,常见的导致锯齿的情况:

1、在使用ImageObject时,drawmode为1拉伸模式下;

2、使用Bitmap类的Stretch函数拉伸图像;

虽然ImageObject有antialias属性支持反走样,不过设置后没有特别明显的优化效果。

解决锯齿的办法就是用C++编写拉伸函数,大家在处理时可以参考我写的处理函数:

int CXLuaCImpl::StretchBitmap(lua_State* luaState)
{
XL_BITMAP_HANDLE hXLBitmap = NULL;
if (XLUE_CheckBitmap(luaState, 2, &hXLBitmap))
{
int nWidth = lua_tointeger(luaState,3);
int nHeight = lua_tointeger(luaState,4); CImage oldImage;
CImage newImage; HBITMAP hBitmap = TransparentImage(XLGP_ConvertXLBitmapToDIB(hXLBitmap, 32));
oldImage.Attach(hBitmap); if(!newImage.CreateEx(nWidth, nHeight, 24, BI_RGB))
{
oldImage.Detach();
return 0;
} int nPreMode = ::SetStretchBltMode(newImage.GetDC(), HALFTONE);
newImage.ReleaseDC();
oldImage.Draw(newImage.GetDC(), 0, 0, nWidth, nHeight, 0, 0, oldImage.GetWidth(), oldImage.GetHeight());
newImage.ReleaseDC();
::SetBrushOrgEx(newImage.GetDC(), 0, 0, NULL);
newImage.ReleaseDC();
::SetStretchBltMode(newImage.GetDC(), nPreMode);
newImage.ReleaseDC(); oldImage.Detach(); hXLBitmap = XLGP_ConvertDDBToXLBitmap(CClientDC(NULL), newImage.Detach(), XLGRAPHIC_CT_ARGB32);
XLUE_PushBitmap(luaState,hXLBitmap); return 1;
} return 0;
}

函数没有使用专业的处理算法,不过锯齿明显有改善,能满足日常需求。


记录,为更好的自己!

最新文章

  1. 用大白话聊聊JavaSE -- 自定义注解入门
  2. hortonworks2.5.3 install step log
  3. C++ STL vector容器学习
  4. Java基础知识学习(九)
  5. selenium高亮显示操作步骤方法
  6. 加载不同的nib文件
  7. checkbox 点击全选
  8. struts中调用servlet的两种方法——IcC方式和非IoC方式的代码demo
  9. 单例模式,多种实现方式JAVA
  10. ARM机器码分析
  11. 转: Firefox 浏览器对 TABLE 中绝对定位元素包含块的判定有错误
  12. HtmlHelper总结
  13. jsoup爬取网站图片
  14. ubuntu 16.04 下安装NVDIA的库(CUDA+CUDNN)
  15. Win2008R2+Apache+PHP+Tomcat配置
  16. Python学习之旅(二十)
  17. Docker基础学习-尚硅谷
  18. MySQL报错:error1130
  19. jqgrid 单列排序和组合排序
  20. 低版本系统兼容的ActionBar(五)修改ActionBar的全套样式,从未如此简单过

热门文章

  1. 嵌入式框架Zorb Framework搭建七:任务的实现
  2. 39-Role以及Claims授权
  3. Linux 之vi与vim
  4. RHEL-7.1 Server.x86_64 yum源设置为光盘
  5. 从PRISM开始学WPF(一)WPF-更新至Prism7.1
  6. 一步一步学Linq to sql(二):DataContext与实体
  7. 前端学习webpack
  8. 手把手教你玩转CSS3 3D技术
  9. Linux-Shell脚本编程-学习-4-Shell编程-操作数字-加减乘除计算
  10. C指针分析详解