首页 > 其他分享 >C生成曲线BMP

C生成曲线BMP

时间:2024-12-31 14:07:55浏览次数:1  
标签:NULL bmiHeader bb 曲线 bi 生成 BMP ------------- bitmap

C生成曲线BMP| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |

| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 16937991| C生成曲线BMP| 2022-11-30T11:53:00| | BlogPost|

 C生成曲线BMP

  http://zhidao.baidu.com/question/222913503.html     屏幕截屏 http://topic.csdn.net/u/20120822/13/e52e7b2a-e151-4985-9aa7-934d9f38c8de.html   #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include<Windows.h> typedef unsigned char  BYTE; typedef unsigned short WORD; typedef unsigned long  DWORD; typedef long                  LONG;   #pragma pack (2)         int SaveBitmapToFile(BITMAP *bitmap, LPCWSTR lpFileName,char *lpBuf) {    DWORD dwWritten;    BITMAPFILEHEADER   bmfHdr;    BITMAPINFOHEADER   bi;    HANDLE          fh=NULL;    bi.biSize = sizeof(BITMAPINFOHEADER);    bi.biWidth= bitmap->bmWidth;    bi.biHeight = bitmap->bmHeight;    bi.biPlanes = 1;    bi.biBitCount      = bitmap->bmBitsPixel*8;    bi.biCompression   = BI_RGB;    bi.biSizeImage     = 0;    bi.biXPelsPerMeter = 0;    bi.biYPelsPerMeter = 0;    bi.biClrUsed       = 0;    bi.biClrImportant  = 0;    fh = CreateFile(lpFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);    if (fh == INVALID_HANDLE_VALUE) return FALSE;    bmfHdr.bfType = 0x4D42; // "BM"    bmfHdr.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)+bitmap->bmWidth*bitmap->bmHeight*bitmap->bmBitsPixel;    bmfHdr.bfReserved1 = 0;    bmfHdr.bfReserved2 = 0;    bmfHdr.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) + (DWORD)sizeof(BITMAPINFOHEADER);    WriteFile(fh, (LPSTR)&bmfHdr, sizeof(BITMAPFILEHEADER), &dwWritten, NULL);    WriteFile(fh, ( char *)&bi,sizeof (BITMAPINFOHEADER), &dwWritten, NULL);    WriteFile(fh, ( char *)lpBuf,bitmap->bmWidth*bitmap->bmHeight*bitmap->bmBitsPixel, &dwWritten, NULL);    FlushFileBuffers(fh);    CloseHandle(fh);    return true; }     int GetBitmapFromScreen(LPCWSTR lpFileName) {     char *lpBuf;     HBITMAP hBitmap,hOld ;     HDC hDC,hcDC;     BITMAP bb;     BITMAPINFO b;     HANDLE hp,fh=NULL;     DWORD dwX,dwY;       dwX=GetSystemMetrics(SM_CXSCREEN);     dwY=GetSystemMetrics(SM_CYSCREEN);     hDC=GetDC(NULL);     hcDC=CreateCompatibleDC(hDC);     hBitmap=CreateCompatibleBitmap(hDC,dwX,dwY);     hOld=(HBITMAP)SelectObject(hcDC,hBitmap);     BitBlt(hcDC,0, 0,dwX,dwY, hDC, 0, 0, SRCCOPY);     bb.bmWidth=dwX;     bb.bmHeight =dwY;     bb.bmPlanes = 1;     bb.bmWidthBytes=bb.bmWidth*3;     bb.bmBitsPixel=3;     bb.bmType=0;     b.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);     b.bmiHeader.biWidth        =dwX;     b.bmiHeader.biHeight       =dwY;     b.bmiHeader.biPlanes       =1;     b.bmiHeader.biBitCount     =3*8;     b.bmiHeader.biCompression  =BI_RGB;     b.bmiHeader.biSizeImage    =0;     b.bmiHeader.biXPelsPerMeter=0;     b.bmiHeader.biYPelsPerMeter=0;     b.bmiHeader.biClrUsed      =0;     b.bmiHeader.biClrImportant =0;     b.bmiColors[0].rgbBlue     =8;     b.bmiColors[0].rgbGreen    =8;     b.bmiColors[0].rgbRed      =8;     b.bmiColors[0].rgbReserved =0;     hp=GetProcessHeap();     lpBuf=( char *)HeapAlloc(hp,HEAP_ZERO_MEMORY,bb.bmHeight*bb.bmWidth*4);     GetDIBits(hcDC,hBitmap,0,dwY,lpBuf,&b,DIB_RGB_COLORS);     SaveBitmapToFile(&bb,lpFileName,lpBuf);     ReleaseDC(NULL,hDC);     DeleteDC(hcDC);     DeleteObject(hBitmap);     DeleteObject(hOld);     HeapFree(hp,0,lpBuf);     return true; }     int _tmain(int argc, _TCHAR* argv[]) {             LPCWSTR path = L "E:\\e.bmp";              GetBitmapFromScreen(path);                return 0; }   | 648658| | 2022-11-30T11:53:00| false| | 2022-11-30T11:52:38.89| true| C生成曲线BMP http://zhidao.baidu.com/question/222913503.html 屏幕截屏 http://topic.csdn.net/u/20120822/13/e52e7b2a-e151-4985-9aa7-934d9f38c8de.html #include "| Anonymous|

标签:NULL,bmiHeader,bb,曲线,bi,生成,BMP,-------------,bitmap
From: https://www.cnblogs.com/ralphlauren/p/18621194

相关文章

  • 使用js写一个方法生成从a-z的数组
    在JavaScript中,你可以使用以下方法生成一个包含从a到z的字母的数组:functiongenerateAlphabetArray(){constalphabet=[];for(letcharCode=97;charCode<=122;charCode++){alphabet.push(String.fromCharCode(charCode));}returnalphab......
  • 人工智能短视频内容理解与生成技术在美团的创新实践12
     1.背景美团围绕丰富的本地生活服务电商场景,积累了丰富的视频数据。美团场景下的短视频示例上面展示了美团业务场景下的一个菜品评论示例。可以看到,视频相较于文本和图像可以提供更加丰富的信息,创意菜“冰与火之歌”中火焰与巧克力和冰淇淋的动态交互,通过短视频形式进......
  • 最新AI智能体开发案例:Coze工作流必备神器!教你用Coze平台搭建「扣子工作流生成神器」智
    ......
  • 中长期合约的曲线分解
     1.为什么必须进行电量的曲线分解电力市场化交易从现行交易过渡到现货交易,最大的区别就是电力现货交易的标的物,由传统的没有时空价值的指标性电量,转变为带时标的电力曲线。通俗的讲就是从之前的“量、价”交易到现在的“量、价、曲线”交易。中长期合约作为规避电力现货价格风......
  • 有压缩格式的Bitmap(BMP)图像显示调色板数据和图像数据
    有压缩格式的BitmapBMP图像显示调色板数据和图像数据参考文章一、测试代码二、测试结果三、调色板数据四、图像数据参考文章Bitmap(BMP)图像信息验证Bitmap(BMP)图像信息分析主要说明带压缩的形式一、测试代码intmain(intargc,char*argv[]){u32Colo......
  • 第一章 曲线论
    第一章曲线论......
  • 如何让Jackson JSON生成的数据包含的中文以unicode方式编码
    https://www.jb51.net/article/44144.htm如何让JacksonJSON生成的数据包含的中文以unicode方式编码 JacksonJSON以高速、方便和灵活著称。之前的文章中介绍过使用注解的形式来规定如何将一个对象序列化成JSON的方法,以及如何将一个JSON数据反序列化到一个对象上。但是美中不足......
  • 58.学生成绩排序
     (......
  • Python项目目录树生成
    1、生成项目目录树在当前文件所在文件夹下运行。2、代码dir_tree.py#-*-coding:utf-8-*-importsysfrompathlibimportPathclassDirectionTree(object):"""生成目录树@pathname:目标目录@filename:要保存成文件的名称"""def__i......
  • 【Python应用】如何将log日志生成html形式的报告
    本文介绍了特殊格式log日志生成自定义报告方法,项目地址https://gitee.com/JasonZhu2021/reporter-tool-python前言如果在日常工作中,遇到一堆数据,但是想实现自动化将数据生成报告或者统计报表,这时候就需要掌握一些定制化输出报告的技能了;模板文件:对于特定格式的报告输出,首先......