社区
Delphi
帖子详情
如何处理-------把BMP图片32位变成24位
cowbo2
2014-05-14 10:00:24
由于图片要从一个图片中截取后,存入数据库中,再存出成文件,
在每一个过程中的BMP处理都用到了PixelFormat:=pf24bit
但好像没效果,出来的还是pf32bit的图片,
请问有没什么函数把文件改成24位?
谢谢...
...全文
879
3
打赏
收藏
如何处理-------把BMP图片32位变成24位
由于图片要从一个图片中截取后,存入数据库中,再存出成文件, 在每一个过程中的BMP处理都用到了PixelFormat:=pf24bit 但好像没效果,出来的还是pf32bit的图片, 请问有没什么函数把文件改成24位? 谢谢...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yct0605
2014-06-06
打赏
举报
回复
你取出的文件是否保存在硬盘上,如果是的话可以用image载入图片然后再保存为bmp图片,默认就应该是24位的了。
zl54
2014-06-06
打赏
举报
回复
void Rgb32To24(byte*data32,byte*data24,DWORD width,DWORD height) { for (int j=0;j<height;j++) for(int i=0;i<width*3;i++) { data24[i+width*3*j]=data32[width*4*j+i+i/3]; } } 纯数学运算 就不用我翻译语法了吧? 指针换成数组即可
虎子8
2014-06-06
打赏
举报
回复
bmp.PixelFormat:=pfDevice; bmp.PixelFormat:=pf24bit; 这样就好了
VC中显示动画GIF
-------
-------
-------
-------
-------
-------
-------
-------
-------
-------
-------
--- PictureEx
图片
显示类支持以下格式的
图片
:GIF (including animated GIF87a and GIF89a), JPEG,
BMP
, WMF, ICO, CUR等,我特别推崇的是可以做出动画,而且轻而易举,确实很COOL。 下面是详细的编程过程: 1. 新建项目:在VC6中用MFC新建一个基于对话框的GifDemo应用程序,接受所有缺省选项即可; 2.在项目中插入文件:把PictureEx.h,PictureEx.cpp文件copy 到项目文件夹下,Project->Add to Project->Files中选上PictureEx.h,PictureEx.cpp, Insert; 3.加入
图片
控件:从对话框控件中把Picture Control(
图片
控件)拖入主对话框中,修改其属性:ID:IDC_GIF,TYPE:Rectangle,其余接受缺省选项。再在ClassWiard中为IDF_GIF加入CSatic控制变量m_GifPic, 注意看一下,GifDemoDlg.h中是否加上了#include "PictureEx.h"(由ClassWiard加入)。然后将CSatic m_GifPic;更改成CPictureEx m_GifPic; 4.加载动画文件:先将要加载的动画文件放到 res 资源文件夹下,再将其Import进项目中,由于MFC只支持256
BMP
文件的
图片
,因此,我们要新建一个
图片
类型:"GIF",我在这里将我网站的宣传
图片
roaring.gif放进去 (希望大家多支持),并将其ID修改成:IDR_GIFROARING。 ____________________________________ import(导入)gif动画的详细过程: 在resourceview窗口中,单击鼠标右键,在出现的环境菜单中选择“import...”命令,会出现“import resource”选择文件对话框,文件类型选择“所有文件(*.*)”,open as 选项为"auto",再选择动画文件所在目录,选上要载入的动画文件 roaring.gif,再单击 import,由于gif动画类型不是vc默认的文件类型,这时会出现"custom resource type"对话框,键入“"gif"”,再单击ok,然后再修改其id。 ________________________________________________________________ 5.在程序的适当
位
置添入加载代码: 这里,我们在CGifDemoDlg::OnInitDialog()函数中加入如下代码: // TODO: Add extra initialization here if (m_GifPic.Load(MAKEINTRESOURCE(IDR_GIFROARING),_T("Gif"))) m_GifPic.Draw(); 如果仅仅把动画载入,到这就可以了,运行一下,应该看看您的的成果了。 下面附带说说如何将这幅动画制作成超链接,以后,咱们也可以宣传自已的公司、网站或产品了。 6.利用ClassWiard加入一个LButtonDown鼠标左键消息
处理
函数CGifDemoDlg::OnLButtonDown(UINT nFlags, CPoint point), 添入如下代码: void CGifDemoDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect rect; m_GifPic.GetWindowRect(&rect); ScreenToClient(&rect); if (rect.PtInRect(point)) ShellExecute(AfxGetMainWnd()->m_hWnd,_T("open"), _T("http://roaringwind.best.163.com"),_T(""),NULL,0); CDialog::OnLButtonDown(nFlags, point); } 我在这儿将我主页的地址放上了,运行,点击动画
图片
就能进入我的站点的了。当然要是能象所有的超链接一样,能将鼠标
变成
手形,就更好了。 7.改变鼠标形状:将一个鼠标文件放在res文件夹中,IMPORT,ID:IDC_CURSOR1,利用ClassWiard加入一个WM_SETCURSOR消息
处理
函数CGifDemoDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message), 添入如下代码: BOOL CGifDemoDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call default CRect rect; m_GifPic.GetWindowRect(&rect); ScreenToClient(&rect); CPoint point; GetCursorPos(&point); ScreenToClient(&point); if (rect.PtInRect(point) && m_hCursor) { SetCursor(m_hCursor); return TRUE; }; return CDialog::OnSetCursor(pWnd, nHitTest, message); } 不错吧。 大家看到了什么好东西,别忘记了告诉我,谢谢。
【C/C++】
BMP
格式
32
位
转
24
位
位
图是一种常用的图像格式,其中每个像素由
32
位
表示,包括红、绿、蓝和透明度通道。然而,某些应用程序和设备可能需要使用
24
位
位
图,其中没有透明度通道。将
32
位
位
图转换为
24
位
可以减小文件大小并提高兼容性。在转换过程中,透明度通道的值被丢弃,仅保留红、绿和蓝通道的值。这样可以减少存储空间的使用,并且适用于不需要透明度信息的应用程序和设备。转换后的
24
位
位
图可以在各种平台上显示和
处理
,同时保持图像的质量。如何通过C++代码实现
BMP
位
图从
32
位
转
24
位
,请看如下文章。
matlab修改
图片
位
深度_
BMP
位
图
32
位
转为
24
位
深度
帮朋友做一个视频采集和基本
处理
功能,要求的是.
bmp
格式几天下来,通过directshow进行视频采集,并抓去
图片
保存,按照要求进行业务
处理
,以前的
处理
程序是基于RGB
24
而显示器是
32
位
真彩色,后调整directshow 的grab filter,修改媒体类型,pmt->majortype = MEDIATYPE_Video;pmt->subtype = MEDIASUBTYPE_R...
处理
不含调色板的
BMP
格式
图片
(
24
位
转16
位
)
处理
不含调色板的
BMP
格式
图片
(
24
位
转16
位
)一、
BMP
图片
格式头二、读取
BMP
图像信息1.读取文件头与信息头2.读取源RGB数据存入源数据内存三、源
24
位
RGB数据转16
位
一、
BMP
图片
格式头 struct
Bmp
_Fileheader_ST //文件头,长度为14Byte { unsigned short bfType; //'BM’格式 0x4D42 unsigned long bfSize; //文件大小 unsigned short bfRes
使用python将
32
位
的
bmp
转成
24
位
的
一个临时需求,要将
32
位
的
bmp
图像转成
24
位
的。
Delphi
5,391
社区成员
262,736
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章