zoukankan      html  css  js  c++  java
  • C语言在24真彩位图上指定位置处画一条横线

    #include<stdio.h>
    #include<windows.h>
    typedef struct
    {
        BYTE b;
        BYTE g;
        BYTE r;
    }RGB;
    int main(void)
    {
        BITMAPFILEHEADER fileHeader;
        BITMAPINFOHEADER infoHeader;
        FILE*pfin=fopen("F:\timg.bmp","rb");
        FILE*pfout=fopen("F:\tidus2.bmp","wb");
        //ReadtheBitmapfileheader;
        fread(&fileHeader,sizeof(BITMAPFILEHEADER),1,pfin);
        //ReadtheBitmapinfoheader;
        fread(&infoHeader,sizeof(BITMAPINFOHEADER),1,pfin);
        //为简化代码,只处理24位彩色
        if(infoHeader.biBitCount==24)
        {
            int size=infoHeader.biWidth*infoHeader.biHeight;
            RGB img[570][400];  //这两个值就是上边的infoHeader.biWidth和infoHeader.biHeight
            fread(img,sizeof(RGB),size,pfin);
            //把第50行染成黑色
            int i=0;
            for(;i<infoHeader.biWidth;i++)
            {
                img[50][i].b=img[50][i].g=img[50][i].r=0;
            }
            //将修改后的图片保存到文件
            fwrite(&fileHeader,sizeof(fileHeader),1,pfout);
            fwrite(&infoHeader,sizeof(infoHeader),1,pfout);
            fwrite(img,sizeof(RGB),size,pfout);
        }
        fclose(pfin);
        fclose(pfout);
    }

    效果:

  • 相关阅读:
    日历(Calendar)模块
    关于Python3中函数:
    正则表达式全集
    python同时遍历两个list
    Python 类
    vs_code 快捷键
    Linux常用命令大全
    Linux基础命令sort
    Linux基础命令练习题答案7.10
    Linux基础命令练习题7.10
  • 原文地址:https://www.cnblogs.com/airduce/p/9687721.html
Copyright © 2011-2022 走看看