随笔分类 -  win32 gdi 图像显示操作相关

摘要:转自:http://blog.csdn.net/ntwilford/article/details/5656633从Windows Vista开始,Aero Glass效果被应用在了Home Premium以上的系统中(Home Basic不具有该效果)。这种效果是由DWM(Desktop Window Manager)来控制的。对于一般的程序,缺省将在窗口边框应用这种效果。但如果我们想要更多的控制,比如让客户区的一部分也呈现这种效果,那也非常的简单。不需要我们在程序里做任何复杂的算法,我们只需要调API,交给DWM去做就可以了。一、Composition(窗口合成) and Non-clie 阅读全文
posted @ 2013-07-21 01:43 fff8965 阅读(7454) 评论(0) 推荐(2)
摘要:SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(hwnd,0,(255*70)/150,LWA_ALPHA); 项目图.rar 阅读全文
posted @ 2013-07-21 01:23 fff8965 阅读(251) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/kevinGao/archive/2012/01/29/2336483.html一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。这样问题就来了,一般画图都是先画背景色,然后再把内容画上去,如果这两次操作不在同一个刷新周期内完成,那么 阅读全文
posted @ 2013-07-21 00:57 fff8965 阅读(310) 评论(0) 推荐(0)
摘要:转自:http://www.codeproject.com/Articles/356/Bitmap-Basics-A-GDI-tutorialWindows GDI Tutorial 1 - Drawing a bitmapBitmaps and palettes are both potentially the most useful part and most confusing parts of the GDI subsystem to neophyte coders. In this, and the following GDI tutorials I will explain how 阅读全文
posted @ 2013-04-15 09:40 fff8965 阅读(355) 评论(0) 推荐(0)
摘要:Bitmap FunctionsAlphaBlendBitBltCreateBitmapCreateBitmapIndirectCreateCompatibleBitmapCreateDIBitmapCreateDIBSectionCreateDiscardableBitmapExtFloodFillFloodFillGdiAlphaBlendGdiGradientFillGdiTransparentBltGetBitmapBitsGetBitmapDimensionExGetDIBColorTableGetDIBitsGetPixelGetStretchBltModeGradientFill 阅读全文
posted @ 2013-04-15 09:11 fff8965 阅读(231) 评论(0) 推荐(0)
摘要:CreateCompatibleDC和CreateCompatibleBitmap用来创建兼容设备和位图,可以创建离屏表面,做完绘图操作再用BitBlt把数据拷贝到当前DC 阅读全文
posted @ 2013-04-15 09:02 fff8965 阅读(204) 评论(0) 推荐(0)
摘要:// jhgj.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "jhgj.h"#include <objidl.h>#include <GdiPlus.h>using namespace Gdiplus;#pragma comment (lib,"Gdiplus.lib")#define MAX_LOADSTRING 100VOID OnPaint(HDC hdc){ Graphics graphics(hdc); Pen pen(Color(255, 0, 0, 阅读全文
posted @ 2013-04-12 17:26 fff8965 阅读(311) 评论(0) 推荐(0)
摘要:转自:http://www.codeproject.com/Articles/7443/DFB-vs-DIBIntroductionWhat is a bitmap and what is a DIB? Is there a difference? Why the Windows API has such functions asCreateBitmap,CreateCompatibleBitmap,CreateDIBitmap, andCreateDIBSection? And what is the difference betweenSetBitmapBitsandSetDIBits?H 阅读全文
posted @ 2013-04-12 17:07 fff8965 阅读(296) 评论(0) 推荐(0)
摘要:位图分为两种DDB和DIB DIB:即兼容位图,独立于设备存在,有描述颜色格式的信息头,如256色1字节、真色彩argb。存在于内存中,是我们写程序的时候能控制的有位图数据格式的数据 DDB:即设备位图,已经被gdi考到显存后的图像格式,没有信息头,显示格式就是当前的显示设备支持的格式。是我们不能控制的,我们只能通知gdi将某个DIB转化为DDB拷贝到显存显示,是不能直接控制DDB的获得DIB的数据: 直接用GetBitmapBits获得DDB的数据: 将位图画到一个自己创建的兼容DC,再创建一个兼容DIB位图,用BitBlt把数据从当前DC拷贝到兼容位图,再用GetBitmap... 阅读全文
posted @ 2013-04-12 11:53 fff8965 阅读(929) 评论(0) 推荐(0)
摘要:(2) API Hook技术在实际截屏时,采用API函数实现,截取DDB位图,必须经过一次DDB到DIB的转换;而驱动技术直接从其管理的DIB位图(表面)中将截取区域的图形数据拷贝到应用程序,显著的降低了一次截屏的时间消耗 计算机屏幕图像的截取在屏幕的录制、计算机远程控制以及多媒体教学软件中都是关键术,基于Windows操作系统有多种截屏方法,研究的重点集中在如何快速有效的截取DBI(Device-Independent Bitmap)格式的屏幕图形数据现在商业软件流行的截屏技术主要采取的Api Hook技术,但这种技术一次截屏仍有较大的时间消耗,这样就对运行软件的硬件仍有较多的限制,而且是. 阅读全文
posted @ 2013-04-11 15:53 fff8965 阅读(3471) 评论(0) 推荐(0)
摘要:gdi截屏// TTTest.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "TTTest.h"#include <stdio.h>LPVOID screenCaptureData=NULL;HBITMAP hBitmap;HDC hDDC;HDC hCDC;int nWidth;int nHeight;void initGDI(){ // Get screen size nWidth = GetSystemMetrics(SM_CXSCREEN); nHeight = GetSystemMet 阅读全文
posted @ 2013-04-10 16:08 fff8965 阅读(5761) 评论(3) 推荐(0)
摘要:上图片为rar合并图片,图片另存为后后缀改为rar,可以解压缩出项目。private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Bitmap bitmap = new Bitmap("p.png");//如果用png图片,格式是rgb,如果用大小如240,240,格式是rgba BitmapData data = bitmap.LockBits(new Rectangle(0, 0, 200, 200),... 阅读全文
posted @ 2012-12-27 11:28 fff8965 阅读(2000) 评论(0) 推荐(0)