zoukankan      html  css  js  c++  java
  • 【笨嘴拙舌WINDOWS】BMP图片浏览器

    要将文件显示成图片这其中需要经过

    1.将磁盘文件内容读取到内存;

    2.将文件对应内存里包含的像素为以及像素信息转化为显示驱动器能理解的格式;

    3.将转化过后的内存送到显卡的缓存区

    4.显示器读取缓存现实于屏幕

    在GDI中,WINDOWS不允许用户操作硬件,所以提供了用于显示位图文件到屏幕的API:

    SetDIBitsToDevice   直接将DIB显示到屏幕上

    (

    hdc,

    xDst,

    yDst,         (xDst,yDst)指定图片左上角的在屏幕上的坐标

    cxSrc,         要显示DIB图片的宽度

    cySrc,         要显示DIB图片的宽度  

    xSrc,         

    ySrc,          (xSrc,ySrc)是DIB图片左下角的坐标

    yScan,       指定DIB图片从哪一行扫描行开始 

    cYScans,    指定一次扫描多少行

    pBits,

    pInfo,

    fClrUse

    )

    StrechDIBits    将DIB通过缩放来显示到屏幕上

    SetDIBitsToDevice 和StrechDIBits 在函数调用期间,每个像素(可能有几百万个)必须从设备无关的格式想设备相关的格式转换,而这种转换通常是非常繁琐的。因此这两个函数的执行效率并不是非常高,WINDOWS为我们提供了一些DIB与DDB的转换函数。

    hBitmap = CreateDIBitmap(hdc,pInfoHdr,0,PbITS,PiNFO,0)

    或者

    hBitmap = CreateDIBitmap(hdc,pInfoHdr,0,null,null,0)

    SetDibits(hdc,hBitmap,0,bitmap.height,pBits,Pinfo,0)

    《《------------反向---------------------》》

    通过GetDibits(hdc,hBitmap,yScan,CYScans,pBits(out),Pinfo(out),0)将DDB转换为DIB,将位图保存为磁盘文件,屏幕截图就需要使用此函数

  • 相关阅读:
    python nltk nltk_data 离线安装,chatterbot
    ubuntu 16.04 64位 安装nvidia cuda
    发送imessage消息
    lua lor mongol socket.http
    pipenv
    headers参数格式化
    Linux删除空文件 空文件夹
    adb 操作安卓手机
    django 实现简单的检索功能
    1044: Access denied for user 'hehe'@'localhost' to database 'imooc'
  • 原文地址:https://www.cnblogs.com/pavkoo/p/3341143.html
Copyright © 2011-2022 走看看