热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于GDI+,如何缩放Image/Bitmap,注意,并不是在画的时候,而是创建完成,画之前,对内存的信息进行缩放

关于GDI+,如何缩放ImageBitmap,注意,并不是在画的时候,而是创建完成,画之前,对内存的信息进行缩放。多谢了
关于GDI+,如何缩放Image/Bitmap,注意,并不是在画的时候,而是创建完成,画之前,对内存的信息进行缩放。多谢了

4 个解决方案

#1


Graphics graphics(pDC->m_hDC);

//装入图形文件
Image image(ToWChar(strOpenFileName.GetBuffer(strOpenFileName.GetLength())));
         
         //得到缩放后的图形
         Image *pimagethumb =  image.GetThumbnailImage(image.GetWidth()+100,image.GetHeight()+100);

         //计算画的区域
         Point destPoints[3] ={Point(image.GetWidth(), 0),
Point(image.GetWidth()+pimagethumb->GetWidth(), 0),
Point(image.GetWidth(), pimagethumb->GetHeight())
};

         //画出来
         Point* pdestPointst = destPoints;
graphics.DrawImage(pimagethumb, pdestPointst, 3);

#2


WCHAR* ToWChar(char * str)
{//在GDI+中,有关字符的参数类型全部都是WCHAR类型
//该函数是将传统字符串进行转换
static WCHAR buffer[1024];
wcsset(buffer,0);
MultiByteToWideChar(CP_ACP,0,str,strlen(str),buffer,1024);
return buffer;
}

#3


非常感謝

#4


我又发现一个问题,就是放大后,如果是带有透明色的图片,在画的时候,图像的边缘不正确,有一圈透明色包围着图像,为什么?如何去除?好像以前我放大画图像的时候也有类似的情况,如何去除GDI+中自动柔化边缘的部分?

推荐阅读
author-avatar
banli
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有