MFC PictureControl 该变图片大小

eastrise_liu 2010-10-22 10:20:46
我把图片表示到了PictureControl里,现在我想实现,在画面上有两个BUTTON,一个是放大一个是缩小,点放大,就放大图片,缩小就缩小图片,然后把改变过大小的图片保存.咋做??求高手给个代码...
缩小是减少像素?就是有点想QQ里头像设置是的效果..刚学MFC呀,一边学一边做...不会!!!
...全文
351 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eastrise_liu 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 eastrise_liu 的回复:]
我把图片表示到了PictureControl里,现在我想实现,在画面上有两个BUTTON,一个是放大一个是缩小,点放大,就放大图片,缩小就缩小图片,然后把改变过大小的图片保存.咋做??求高手给个代码...
缩小是减少像素?就是有点想QQ里头像设置是的效果..刚学MFC呀,一边学一边做...不会!!!
[/Quote]

不要说理论,有没有代码..看看..
yaoyuan2 2010-10-22
  • 打赏
  • 举报
回复
放大就是加点,插值,一般是按平均值插
缩小就是减少像素点,可以直接删除点,或者多个像素算平均值
eastrise_liu 2010-10-22
  • 打赏
  • 举报
回复
只是个思路吧,回去试试,本人水平比较菜,不一定能能做出来....最好能有个全一点的代码..
lyingbo 2010-10-22
  • 打赏
  • 举报
回复
不知道这个代码是怎么插入的,格式那么乱
lyingbo 2010-10-22
  • 打赏
  • 举报
回复

Standarize(BYTE *pData, int width, int height, int StdWidth, int StdHeight)
{
if ((NULL == pData)||(width <= 0)||(height <= 0)||(StdWidth <= 0)||(StdHeight <= 0))
{
return NULL;
}
BYTE* retData = new BYTE[StdWidth*StdHeight];

double WRate = double(width) / StdWidth;
double HRate = double(height) / StdHeight;
for (int h = 0; h < StdHeight;h++)
{
for (int w = 0; w < StdWidth; w++)
{
int Index = int(h * HRate + 0.5) * width + int(w * WRate + 0.5);
retData[h * StdWidth + w] = pData[Index];
}
}
return retData;
}
上面的代码是将width*height的黑白图片pData标准化到StdWidth*StdHeight大小的retData里面
lyingbo 2010-10-22
  • 打赏
  • 举报
回复
Standarize(BYTE *pData, int width, int height, int StdWidth, int StdHeight)
{
if ((NULL == pData)||(width <= 0)||(height <= 0)||(StdWidth <= 0)||(StdHeight <= 0))
{
return NULL;
}
BYTE* retData = new BYTE[StdWidth*StdHeight];

double WRate = double(width) / StdWidth;
double HRate = double(height) / StdHeight;
for (int h = 0; h < StdHeight;h++)
{
for (int w = 0; w < StdWidth; w++)
{
int Index = int(h * HRate + 0.5) * width + int(w * WRate + 0.5);
retData[h * StdWidth + w] = pData[Index];
}
}
return retData;
}

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧