CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

关于位图显示!!

楼主tianzxy(月亮雨)2005-06-03 21:37:38 在 VC/MFC / 界面 提问

我在我的工程中添加了一个位图资源,该资源是我从一幅分辨率较高的.jpg   图片里拷过去的,,可是我显示出来的图像只有简单的几种颜色,,请问这是怎么回事?应该怎么样解决? 问题点数:20、回复次数:15Top

1 楼Featured(我握着爱情的门票静静排队……)回复于 2005-06-03 22:06:24 得分 5

你不要通过资源,可以直接加载外部图片。  
  BMP图片可以通过如下代码加载:  
  CDC   MemDC;  
  CString   str("f:\\ascii.bmp");      
  HBITMAP   hBitmap=(HBITMAP)LoadImage(NULL,str,   IMAGE_BITMAP,   0,   0,   LR_LOADFROMFILE|LR_CREATEDIBSECTION);  
  CBitmap   *pBitmap   =   new   CBitmap;  
   
  pBitmap->Attach(hBitmap);            
   
  MemDC.CreateCompatibleDC(pDC);      
  MemDC.SelectObject(pBitmap);  
  pDC->BitBlt(0,   0,800,   800,   &MemDC,   0,   0,   SRCCOPY);    
  Top

2 楼zzm7000()回复于 2005-06-03 22:11:08 得分 0

添加的位图资源默认比特深度只有4,也就是说只是16色的。你可以把jpg直接加到项目里,但是需要知道你准备拿图像干什么Top

3 楼Hendy_So(横笛)回复于 2005-06-03 22:13:51 得分 0

VC的资源管理器只支持最高256色位图。Top

4 楼psbeond(LibUIDK界面库客服)回复于 2005-06-04 00:22:18 得分 0

VC能直接支持jpg吗?应该不行吧,如果是jpg的话,用GDI+加载  
  Top

5 楼erwinlyj(littlebaby)回复于 2005-06-04 00:39:43 得分 5

bmp可以在vc中调用和显示,  
  但是jpg要处理,这两钟冬冬的数据结构是不一样的  
  请你参考这个:  
  VC数字图像处理编程讲座  
  http://purec.binghua.com/Article/Class6/Class23/200412/392.html  
  我现在做的一个程序调用bmp文件是这样调用的:  
                  在窗口的OnCreat()里面初始化数据:  
                    mdc   =   new   CDC;  
   
   
  char   ch[10];                             //载入图片组1  
  for(int   i=0;i<=9;i++)    
  {  
  sprintf(   ch   ,   "b%d.bmp"   ,   i   );    
  bitmap[i]   =   new   CBitmap   ;            
  bitmap[i]->m_hObject   =   (HBITMAP)::LoadImage(NULL,   ch   ,IMAGE_BITMAP,Tel1Width,Tel1Heigh,LR_LOADFROMFILE);    
  }  
  mdc->CreateCompatibleDC(&dc);  
  mdc->SelectObject(bitmap);//Tel1Width,Tel1Heigh为图片的分辨率,我前面用const定义过了的,你查查LoadImage()参数说明就知道了;  
   
  在::OnPaint()  
  {  
  CPaintDC   dc(this);  
  Draw(&dc);  
  }  
   
  void   CChildwinWnd::Draw(CDC   *dc)  
  {  
  for(int   i=0;i<=9;i++)    
  {  
   
  mdc->SelectObject(bitmap[i]);  
  dc->BitBlt(Tel1DistanceX,Tel1DistanceY,Tel1Width,Tel1Heigh,mdc,0,0,SRCCOPY);    
  ,0,0,SRCCOPY);  
  }  
  }  
   
  附:Draw()在头文件中的定义  
  void Draw(   CDC   *pdc   );  
   
   
  Top

6 楼tianzxy(月亮雨)回复于 2005-06-04 10:46:56 得分 0

我就是想把文档的背脊设成一副比较好看的清楚的图,不想用打开外部的位图!Top

7 楼allenhiman(9Ft)回复于 2005-06-04 10:56:24 得分 5

//也许这样最简单,而且你能看明白  
  void   YourView::OnDraw(CDC*   pDC)    
  {  
  //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
   
  CBitmap   bmp;  
  bmp.LoadBitmap(IDB_XXXX);  
  CBrush   m_brush;  
  m_brush.CreatePatternBrush(&bmp);  
  CRect   rect(   0,   0,   2000,   2000);  
  pDC->FillRect(rect,   &m_brush);  
  m_brush.DeleteObject();  
  bmp.DeleteObject();  
  }Top

8 楼tianzxy(月亮雨)回复于 2005-06-04 11:13:48 得分 0

我本来就是象楼上那位allenhiman(YadWe)   那样做的,,  
      效果太差了,,有没有好的办法?Top

9 楼allenhiman(9Ft)回复于 2005-06-04 12:06:06 得分 0

楼上几位说的都不错啊  
  不过2楼的代码由资源和内存泄露的嫌疑  
  Top

10 楼sunshine13870840(雀弹)回复于 2005-06-04 17:25:46 得分 5

vc可以加载JPG图形,就看你想加载干什么?  
  如果显示只有256色,加在对话框的空间上用,  
  CWnd*p=GetDlgItem(IDC_ss);  
  CDC   *pDC=new   CDC;  
  CDC   mdc;  
  mdc.CreeatecompatibleDC(pDC);  
  CBitmap   bitmap;  
  bitmap.LoadBitmap(IDB_BITMAP1);  
  mdc.slectObject(&bitmap);  
  pDC->Bitblt(0,0,100,100,&mdc,SRCCOPY);  
  如果加在对话框可以用SetWindowPos()来设置位置Top

11 楼o1n(小毛子)回复于 2005-06-04 22:24:05 得分 0

用PictureEx类可以直接加jpg和gif   格式的动画Top

12 楼gauss(Powered-by-Internet)回复于 2005-06-04 22:40:10 得分 0

问题出在你拷过去上面,VC6支持各种格式(包括真彩色)的BMP,但只能显示最高256色的BMP。  
  你可以把JPG保存成BMP,然后Import进资源里面。Top

13 楼tianzxy(月亮雨)回复于 2005-06-06 20:56:04 得分 0

如果高于256色怎么办呢?有办法吗?Top

14 楼t12345678(才鸟)回复于 2005-06-07 10:55:41 得分 0

学习!Top

15 楼tianzxy(月亮雨)回复于 2005-06-19 18:09:07 得分 0

?Top

相关问题

  • 显示位图
  • 位图显示
  • CStatic显示位图
  • 关于显示位图
  • 位图显示问题,急!!!!!
  • 位图(文字)显示
  • 大位图显示问题
  • 位图显示问题
  • 急问!在显示器屏幕上显示位图的问题
  • DIB位图,如何显示缩略图

关键词

  • mdc
  • dc
  • vc
  • tel1
  • 加载
  • cdc
  • bmp
  • pdc
  • heigh
  • hbitmap

得分解答快速导航

  • 帖主:tianzxy
  • Featured
  • erwinlyj
  • allenhiman
  • sunshine13870840

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo