精华内容
下载资源
问答
  • 如何批量转.jpg/.bmp图片

    千次阅读 2019-08-09 20:01:14
    1、在图片目录下新建一个TXT,写入ren *.bmp *.jpg 2、将txt后缀改成.bat 3、双击该bat文件即可 将.jpg转换为.bmp: 1、在图片目录下新建一个TXT,写入ren *.jpg *.bmp 2、将txt后缀改成.bat 3、双击该bat文件即可 ...

    将.bmp转换为.jpg:

    1、在图片目录下新建一个TXT,写入ren *.bmp *.jpg
    2、将txt后缀改成.bat
    3、双击该bat文件即可

    将.jpg转换为.bmp:

    1、在图片目录下新建一个TXT,写入ren *.jpg *.bmp
    2、将txt后缀改成.bat
    3、双击该bat文件即可

    展开全文
  • 从这篇博客开始,我分3篇来介绍如何利用GDAL来保存bmp格式的灰度图。 第一篇是一个最简单的例子:从TCP端接收数据,然后通过GDAL保存为本地的bmp灰度文件。这个例子有个缺点:GDAL要求数据每行字节数被4整除,这个...

    GDAL是处理地理信息的有力工具。从这篇博客开始,我分3篇来介绍如何利用GDAL来保存bmp格式的灰度图。

    第一篇是一个最简单的例子:从TCP端接收数据,然后通过GDAL保存为本地的bmp灰度文件。这个例子有个缺点:GDAL要求数据每行字节数被4整除,这个程序没有对这个要求加保护措施。这个问题将在第二篇里修正。

    1)准备数据

    在photoshop里新建一个灰度文件,文件的宽度应该是4的倍数(正如前面所说,程序没有加保护,所以文件宽度要被四整除)。

     

     注:创建的灰度图,每个像素占一个字节。但是CSDN似乎不支持上传这种单字节格式的bmp文件。我只能传一个png文件示意。

    2)撰写一个TCP类,用来从TCP端口读取二进制数据:

    #include "ClientThread.h"
    #include "ClientTCP.h"
    #include <wingdi.h>
    #include <qdebug.h>
    
    #if !defined(IMG_BUF_SIZE)
    #define IMG_BUF_SIZE (1024 * 1024 * 10)
    #endif
    
    #if !defined(TCP_BUF_SIZE)
    #define TCP_BUF_SIZE (1024 * 1024)
    #endif
    
    int MFCconnect(SOCKET skt, const sockaddr * pAddr, int iLen)
    {
        return connect(skt, pAddr, iLen);
    }
    
    ClientThread * pInstance = NULL;
    
    
    ClientThread::ClientThread() : QThread()
    {
        m_pData = new unsigned char[TCP_BUF_SIZE];
    	m_pImg = new unsigned char[IMG_BUF_SIZE];
    
    	m_iBufPtr = 0;
        pInstance = this;
    }
    
    ClientThread::~ClientThread()
    {
        terminate();
        delete [] m_pData;
    	delete [] m_pImg;
    }
    
    void ClientThread::run()
    {
        WSAData wsaData;
        int iRet = WSAStartup(MAKEWORD(2, 2), &wsaData);
        if (0 == iRet)
        {
            m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
            if (INVALID_SOCKET != m_socket)
            {
                sockaddr_in saServer;
                saServer.sin_family = AF_INET; //地址家族
                saServer.sin_port = htons(5050); //注意转化为网络节序
                saServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
                if (SOCKET_ERROR != MFCconnect(m_socket, (const sockaddr  *)&saServer, (int)sizeof(saServer)))
                {
                    ClientTCP * pDlg = ClientTCP::pGetInstance();
    
                    pDlg->setReadyMsg();
                    while (true)
                    {
                        int iRet = recv(m_socket, (char *)m_pData, TCP_BUF_SIZE, 0);
                        if (SOCKET_ERROR == iRet)
                        {
                            int nError = WSAGetLastError();
                            pDlg->setErrMsg();
                            break;
                        }
                        else if (0 == iRet)//链接断开
                        {
                            int nError = WSAGetLastError();
                            pDlg->setErrMsg();
                            break;
                        }
                        else
                        {
    						static bool static_bFlag = false;
    						static BITMAPFILEHEADER  stFileBMP;
    						static BITMAPINFOHEADER  stInfoBMP;
    						if(!static_bFlag)
                            {
    							memcpy(&stFileBMP, m_pData, sizeof(stFileBMP));
    							memcpy(&stInfoBMP, m_pData + sizeof(BITMAPFILEHEADER), sizeof(BITMAPINFOHEADER));
    							static_bFlag = true;
    						}
    
    						memcpy(m_pImg + m_iBufPtr, m_pData, iRet);
    						m_iBufPtr += iRet;
    						if(m_iBufPtr == stFileBMP.bfSize)
    						{
    							bool bRet = bWriteMemToFile_GrayScale(m_pImg + stFileBMP.bfOffBits,
                                                                         stInfoBMP.biWidth, stInfoBMP.biHeight,
                                                                         "hehe.bmp");
    							
    						}
    
    						qDebug()<<m_iBufPtr;
                        }
                    }
    
                    WSACleanup();
                }
            }
        }
    }
    
    ClientThread * ClientThread::pGetInstance()
    {
        return pInstance;
    }
    

    3) 撰写一个专门用来保存灰度图的函数:

    
    bool bWriteMemToFile_GrayScale(unsigned char * pData, int iWidth, int iHeight,
                         const char * arrFileName)
    {
        char *GType = NULL;
        GType = pFindImageTypeGDAL((char *)arrFileName);
        if (GType == NULL)	{ return false; }
    
        GDALDriver *pDriver = NULL;
        pDriver = GetGDALDriverManager()->GetDriverByName((const char *)GType);
        if( pDriver == NULL ) { return false; }
    
        GDALDataset * pDataSet = pDriver->Create(arrFileName, iWidth, iHeight, 1, GDT_Byte, NULL);
    
        GDALRasterBand * pBand = pDataSet->GetRasterBand(1);// from 1 to GetRasterCount()
        pBand->RasterIO(GF_Write,
                        0,
                        0,
                        iWidth,
                        iHeight,
                        pData ,
                        iWidth,
                        iHeight,
                        GDT_Byte,
                        0,
                        0,
                        NULL);//用法见 https://www.gdal.org/classGDALRasterBand.html#a30786c81246455321e96d73047b8edf1
        GDALClose((GDALDatasetH) pDataSet);//用法示例见https://blog.csdn.net/godenlove007/article/details/8864763  https://blog.csdn.net/liminlu0314/article/details/19633849
    }
    
    char * pFindImageTypeGDAL( char *pDstImgFileName)
    {
        char *dstExtension = strlwr(strrchr(pDstImgFileName,'.') + 1);
        char *Gtype = NULL;
        if		(0 == strcmp(dstExtension,"bmp")) Gtype = "BMP";
        else if (0 == strcmp(dstExtension,"jpg")) Gtype = "JPEG";
        else if (0 == strcmp(dstExtension,"png")) Gtype = "PNG";
        else if (0 == strcmp(dstExtension,"tif")) Gtype = "GTiff";
        else if (0 == strcmp(dstExtension,"gif")) Gtype = "GIF";
        else Gtype = NULL;
    
        return Gtype;
    }
    

    4)在main.cpp里初始化GDAL驱动:

    #include "ClientTCP.h"
    #include <QtWidgets/QApplication>
    #include "ClientThread.h"
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        ClientThread thrd;
        ClientTCP w;
        w.show();
    
    	GDALAllRegister();
        return a.exec();
    }
    

    5)通过TCP助手向你的程序发送你刚刚制作的bmp文件:

    6) 发送完毕后,你会看到hehe.bmp保存在sln同级的目录内:

    7)注意,bmp文件把内存的第一行作为图像最底一行。所以网络助手发出的数据其实是从底下往上发。但是GDAL保存文件时,仍然按照正常顺序,内存第一行也是图片第一行。所以最后的文件hehe.bmp变成upside-down

     源代码请在我的资源https://download.csdn.net/my中下载。

    展开全文
  • Windows删除或添加右击新建中的选项 Windows下,在空白处,鼠标右键新建默认有...比如,我现在要删除新建BMP图片文件这个选项,那我就要: 首先使用Win+R键,调出运行框,输入regedit,调出注册表编辑器。 找到...

    Windows删除或添加右击新建中的选项

    Windows下,在空白处,鼠标右键新建默认有文本文档、Word等。但是有一些东西我们平时非常少用甚至基本没用,而我们平时经常用的它却没有。所以今天查了些资料,总结了一下如何删除或添加鼠标右键新建中的选项。

    删除

    比如,我现在要删除新建BMP图片文件这个选项,那我就要:

    1. 首先使用Win+R键,调出运行框,输入regedit,调出注册表编辑器。

    2. 找到HKEY_CLASSES_ROOT项,该项下有一大群.xx项,这些记录不同类型的文件扩展名,若存在子项ShellNew,则可以通过右键新建直接创建,也就是我们鼠标右击新建中的项。
      在这里插入图片描述

    3. 为了避免查找麻烦,可以直接在搜索栏输入输入计算机\HKEY_CLASSES_ROOT\.bmp,然后回车。
      在这里插入图片描述

    4. 直接删除ShellNew这个子项
      在这里插入图片描述

    然后新建BMP图片文件这个选项就鼠标右击新建里消失了

    新建

    比如,我现在想新建.md的文件,我需要:

    1. HKEY_CLASSES_ROOT新建项,取名.md

    2. .md项下新建项,取名ShellNew

    3. ShellNew项下新建字符串值,取名NullFile

    保存,可能需要重启,就大功告成了

    参考资料

    展开全文
  • 在VS中新建一个 MFC单文档或多文档的应用程序,可以通过“文件(File)/打开(open)”的打开文件选择的对话框,那如何选择文件过滤器呢,比如要实现选择打开文件格式为*.bmp或*.jpg的图像文件。一般可以通过编程的...

    MFC文件打开格式,MFC默认打开文档后缀(支持打开多图像格式)

        【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/72551918

        在VS中新建一个 MFC单文档或多文档的应用程序,可以通过“文件(File)/打开(open)”的打开文件选择的对话框,那如何选择文件过滤器呢,比如要实现选择打开文件格式为*.bmp或*.jpg的图像文件。一般可以通过编程的方法,动态实现这一方法,这有相关的博客介绍,我这里主要介绍另外两种简单的方法,可以实现默认支持的文件打开格式,也可以实现支持多格式的文件。

    【方法一】在新建MFC项目时(如单个文档或者多个文档)的MFC项目,在向导的【文档模板属性】的“文件扩展名”中输入你想默认支持的文件格式,如这里填写“bmp”,这时MFC应用程序的“文件(File)/打开(open)”的对话框默认打开的是“*.bmp”文件。


    【方法二】新建MFC应用程序后,若想修改默认打开文件的格式,或者增加支持的文件格式。可以这样操作:

    在“资源视图”中,选择String Table,找到“IDR_XxxxTYPE”(Xxxx是你项目名字),并将Captain的属性值修改为:

    1. \nDemo1\nDemo1\nDemo1 Files (*.jpg;*.bmp)\n.jpg;.bmp\nDemo1.Document\nDemo1.Document  



    这时,MFC设置支持打开的图片格式为*.jpg;*.bmp,当然你也可以根据你自己的需要,增删不同的格式,其“文件(File)/打开(open)”的对话框如下图所示



    展开全文
  • 使用Altova XMLSpy 打开EtherCAT从站设备的Xml文件,里面有个厂商和设备的Logo小图片,如何看到图片内容和编辑图片呢 1. 根据首位的两个字节,424D对于Ascii码为“BM”,表示这是个bmp格式的文件。 2. 使用HexEdit...
  • 使用Serv-u限制文件类型 u 案例需求 如何使用Serv-U限制用户上传的文件类型? u 知识提示 使用Serv-U不仅可以用来限制用户的读、写、删除等权限,还可以根据文件类型进行限制。 案例:限制用户只能够上传.gif、.jpg...
  • MFC 如何添加位图按钮

    2013-07-06 17:18:20
    一、位图按钮 1、建立MFC下的基于对话框的应用程序; ...4、新建或者导入bmp文件,明确该文件的ID; 5、在对话框的初始化(OnInitDialog)中设置按钮的显示,如下 hInstance = ::AfxGetInstance
  • 1. 制作ICO图表文件 ...首先自己准备好喜欢的BMP位图文件,然后利用图标制作工具IconMaster将位图文件转化为ICO图标文件 2. 制作rc资源文件 用记事本新建文件,里面就写一行:IDI_ICON1 ICON DISCARDABLE
  • PDG文件批量转换PDF

    热门讨论 2011-03-24 14:55:37
    在这里我们可以新建一个PDF文件,在这里我用的是FoxitPDFReader,我还没有找到如何用这个软件新建一个空的PDF文件,所以我先新建了一个记事本,再把它的扩展名改为PDF,呵呵,谁叫WINDOWS是认扩展名的呢。...
  • 怎么将一个整个文件一次读到内存,然后循环从内存中读取1024字节,写入新的文件(或socket发送出去) 如何将一个整个文件一次读...CString srcPath = "D:\\My Documents\\My Pictures\\新建文件夹\\知知.bmp"; //
  • 第一课拓展任务需求思考实现步骤 任务需求 使用二进制画一个图——bmp图像 思考 看到这个任务,我先去百度了...分辨率我这里设置的比较低,希望生成的文件小一些,方便寻找规律 这里首先画一个点,然后打开hex ...
  • 如何给按钮添加一个位图图标!

    千次阅读 2011-08-20 18:30:08
    MFC提供的button都是矩形的,不好看。能不能在按钮上显示个位图呢。...1.新建一个单文档工程,需要找到一张格式为BMP的位图。 2.然后再VC6.0下Insert ->Resourse->BitMap->Import。文件类型选着所有文件,然后找
  • 如何将PPT转word

    2011-12-10 22:58:29
    转换完成后即可自动新建一个Word文档,显示该PPT文件中的所有文字。 ps: 第四种慎用,百度上很多所谓的那个软件都是有病毒的,毒性不小,一般的杀毒软件查不出~~ PDF文档的规范性使得浏览者在阅读上方便了许多,但倘若...
  • 如何用图片填充背景

    千次阅读 2009-10-08 10:43:00
    2.新建一个工程,命名为:test ,在资源编辑里用Import导入刚才准备好的位图文件.ID为IDB_BITMAP如果位图是大于16色的,会出现无法显示的提示。不要紧,这并不影响程序最终的显示。3.代码实现3.1 我们为CTestView类...
  • 2.新建一个工程,命名为:test ,在资源编辑里用Import导入刚才准备好的位图文件.ID为IDB_BITMAP如果位图是大于16色的,会出现无法显示的提示。不要紧,这并不影响程序最终的显示。3.代码实现3.1 我们为CTestView类...
  • 1、SQL*Plus中 SQL&gt; create table t_photo1(photo1 long raw);... 2、硬盘上c:/下有一个图象文件tmp.bmp 3、打开FORM 新建两个块:t_photo1、t_photo2 t_photo1块是数据库块,连接的...
  • 注意的是你也可以从一个文件新建一个位图对象,但使用这样的方式保存在数据库中的图形格式是浏览器不能够识别的。当你往数据库中保存图象时,你应该知道你需要使用什么格式来保存你可以把文件中的每一个字节保存...
  • //G_str_path = string.Format( //计算文件保存路径 //@"{0}{1}", G_FolderBrowserDialog.SelectedPath,+ ".doc"); // WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(richTextBox3.Paste()...
  • WinRAR 对 WAV、BMP 声音及图像文件可以用独特的多媒体压缩算法大大提高压缩率,虽然我们可以将 WAV、BMP 文件转为 MP3.JPG 等格式节省存储空间,但不要忘记 WinRAR 的压缩可是标准的无损压缩。 【能完善地支持ZIP...
  • 软件的oemdata目录新建apple目录,将oemlogo.bmp放入此目录,修改本软件language 目录内的相关语言包文件,简体中文为"简体中文.ini",转到[list]小节,将count=51 改为count=52,在最后一行加入list52='苹果电脑,...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    c:\work\image\*.bmp //备份图片 c:\work\misc 接着运行: rar a backup @backup.lst 如果你希望从标准输入设备读取文件名,指定空的文件列表名(只有@)。 默认, 控制台 RAR 的列表文件中使用单字节编码。...
  • VC中显示动画GIF

    热门讨论 2009-01-05 23:04:49
    4.加载动画文件:先将要加载的动画文件放到 res 资源文件夹下,再将其Import进项目中,由于MFC只支持256BMP文件的图片,因此,我们要新建一个图片类型:"GIF",我在这里将我网站的宣传图片roaring.gif放进去 (希望...
  • 25、纠正不能预览较大BMP图片的BUG。 26、纠正某些情况下重启进DOS时电脑无法启动的BUG。 27、纠正在恢复文件功能中,更改文件过滤条件后,仍然会复制已被过滤掉的文件的问题。 28、纠正专业版加密锁在64位Windows 8...
  • BMP:Windows或OS/2位图文件 BOOK:Adobe FrameMaker Book文件 BOX:Lotus Notes的邮箱文件 BPL:Borlard Delph 4打包库 BSP:Quake图形文件 BUN:CakeWalk 声音捆绑文件(一种MIDI程序) C C0l:台风波形文件 ...
  • 新建”一个运动员 110 将运动员加入组 111 “删除”一个运动员 112 从组中开除运动员 112 获得一个组里的所有运动员 113 获取组成员的副本 114 根据位置查询运动员 116 查询运动员的运动项目 116 五 运行RosterApp...
  • 9.4.1 BMP图像文件的结构 167 9.4.2 位图操作 169 9.4.3 CImage类 172 9.5 小结 174 第10章 对话框 175 10.1 控件 175 10.1.1 常用控件介绍 175 10.1.2 控件的创建 176 10.1.3 控件的消息 178 10.2 对话框的创建 181...
  • 阿波罗stm32f767开发板

    2018-07-05 15:09:49
    | |--3,新建工程模板-基于固件库---------------------------教您如何新建基于HAL库的工程模板 | |--4,新建工程模板-基于寄存器---------------------------教您如何新建基于寄存器的工程模板 | |--阿波罗STM32...
  • 上述方法也可以解决,但是每次新建一个文件都要替换这部分代码,还不如换lib WINDOWS下默认按键对应 #define PSP_BUTTON_UP SDLK_w #define PSP_BUTTON_DOWN SDLK_s #define PSP_BUTTON_LEFT SDLK_a #define PSP_...
  • 31、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?  SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

如何新建bmp文件