当前位置: 首页>>代码示例>>Java>>正文


Java HBITMAP类代码示例

本文整理汇总了Java中com.sun.jna.platform.win32.WinDef.HBITMAP的典型用法代码示例。如果您正苦于以下问题:Java HBITMAP类的具体用法?Java HBITMAP怎么用?Java HBITMAP使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


HBITMAP类属于com.sun.jna.platform.win32.WinDef包,在下文中一共展示了HBITMAP类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: capture

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
public BufferedImage capture(final HWND hWnd) {

        final HDC hdcWindow = User32.INSTANCE.GetDC(hWnd);
        final HDC hdcMemDC = GDI32.INSTANCE.CreateCompatibleDC(hdcWindow);

        final RECT bounds = new RECT();
        User32Extra.INSTANCE.GetClientRect(hWnd, bounds);

        final int width = bounds.right - bounds.left;
        final int height = bounds.bottom - bounds.top;
        if (width * height <= 0) { return null; }
        final HBITMAP hBitmap = GDI32.INSTANCE.CreateCompatibleBitmap(hdcWindow, width, height);

        final HANDLE hOld = GDI32.INSTANCE.SelectObject(hdcMemDC, hBitmap);
        GDI32Extra.INSTANCE.BitBlt(hdcMemDC, 0, 0, width, height, hdcWindow, 0, 0, WinGDIExtra.SRCCOPY);

        GDI32.INSTANCE.SelectObject(hdcMemDC, hOld);
        GDI32.INSTANCE.DeleteDC(hdcMemDC);

        final BITMAPINFO bmi = new BITMAPINFO();
        bmi.bmiHeader.biWidth = width;
        bmi.bmiHeader.biHeight = -height;
        bmi.bmiHeader.biPlanes = 1;
        bmi.bmiHeader.biBitCount = 32;
        bmi.bmiHeader.biCompression = WinGDI.BI_RGB;

        final Memory buffer = new Memory(width * height * 4);
        GDI32.INSTANCE.GetDIBits(hdcWindow, hBitmap, 0, height, buffer, bmi, WinGDI.DIB_RGB_COLORS);

        final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        image.setRGB(0, 0, width, height, buffer.getIntArray(0, width * height), 0, width);

        GDI32.INSTANCE.DeleteObject(hBitmap);
        User32.INSTANCE.ReleaseDC(hWnd, hdcWindow);

        return image;

    }
 
开发者ID:friedlwo,项目名称:AppWoksUtils,代码行数:39,代码来源:Paint.java

示例2: getScreenshot

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
public static BufferedImage getScreenshot( final Rectangle bounds ) {
	HDC windowDC = GDI.GetDC( USER.GetDesktopWindow() );
	HBITMAP outputBitmap = GDI.CreateCompatibleBitmap( windowDC, bounds.width, bounds.height );
	try {
		HDC blitDC = GDI.CreateCompatibleDC( windowDC );
		try {
			HANDLE oldBitmap = GDI.SelectObject( blitDC, outputBitmap );
			try {
				GDI.BitBlt( blitDC, 0, 0, bounds.width, bounds.height, windowDC, bounds.x, bounds.y, GDI32.SRCCOPY );
			} finally {
				GDI.SelectObject( blitDC, oldBitmap );
			}
			BITMAPINFO bi = new BITMAPINFO( 40 );
			bi.bmiHeader.biSize = 40;
			boolean ok = GDI.GetDIBits( blitDC, outputBitmap, 0, bounds.height, (byte[]) null, bi, WinGDI.DIB_RGB_COLORS );
			if ( ok ) {
				BITMAPINFOHEADER bih = bi.bmiHeader;
				bih.biHeight = -Math.abs( bih.biHeight );
				bi.bmiHeader.biCompression = 0;
				return bufferedImageFromBitmap( blitDC, outputBitmap, bi );
			} else
				return null;
		} finally {
			GDI.DeleteObject( blitDC );
		}
	} finally {
		GDI.DeleteObject( outputBitmap );
	}
}
 
开发者ID:icza,项目名称:sc2gears,代码行数:30,代码来源:OrigJNAScreenShot.java

示例3: _captureAero

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
public static BufferedImage _captureAero(HWND hwnd, Rectangle bounds) {
	//RDW_FRAME | RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW | RDW_ALLCHILDREN 
	int flags = 0x0400 | 0x0001 | 0x0004 | 0x0100 | 0x0080;
	
	HWND tagetHwnd = hwnd;
	
	HDC windowDC = GDI.GetDC(tagetHwnd);
       HBITMAP outputBitmap = GDI.CreateCompatibleBitmap(windowDC, bounds.width, bounds.height);
       
       try{
       	HDC blitDC = GDI.CreateCompatibleDC(windowDC);
       	try{
               HANDLE oldBitmap =
                       GDI.SelectObject(blitDC, outputBitmap);
               
               USER.RedrawWindow(tagetHwnd, null, null, flags);
  
               if(USER.PrintWindow(tagetHwnd, blitDC, 1)){
               	GDI.SelectObject(blitDC, oldBitmap);
               	
               	WinGDI.BITMAPINFO bi = new WinGDI.BITMAPINFO(40);
               	bi.bmiHeader.biSize = 40;
               	boolean ok =
               	         GDI.GetDIBits(blitDC, outputBitmap, 0, bounds.height,
               	         (byte[]) null, bi, WinGDI.DIB_RGB_COLORS);
               	if (ok) {
               		WinGDI.BITMAPINFOHEADER bih = bi.bmiHeader;
               		bih.biHeight = -Math.abs(bih.biHeight);
               		bi.bmiHeader.biCompression = 0;
               		return bufferedImageFromBitmap(blitDC, outputBitmap, bi);
               	} else {
               		return null;
               	}
               }
       	} finally{
       		GDI.DeleteObject(blitDC);
       	}
       } finally {
           GDI.DeleteObject(outputBitmap);
           GDI.DeleteObject(windowDC);
       }
	return null;
}
 
开发者ID:megablue,项目名称:Hearthtracker,代码行数:44,代码来源:HearthRobot.java

示例4: _capture

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
public static BufferedImage _capture(HWND hwnd, Rectangle bounds) {
    HDC windowDC = null;
    
    if(hwnd == null){
    	windowDC = GDI.GetDC(USER.GetDesktopWindow());
    } else {
    	windowDC = GDI.GetDC(hwnd);
    }
    
    HBITMAP outputBitmap =
            GDI.CreateCompatibleBitmap(windowDC,
            bounds.width, bounds.height);
   
    try {
        WinDef.HDC blitDC = GDI.CreateCompatibleDC(windowDC);
        try {
            WinNT.HANDLE oldBitmap =
                    GDI.SelectObject(blitDC, outputBitmap);
            try {
                GDI.BitBlt(blitDC,
                        0, 0, bounds.width, bounds.height,
                        windowDC,
                        bounds.x, bounds.y,
                        GDI32.SRCCOPY);
            } finally {
                GDI.SelectObject(blitDC, oldBitmap);
            }
            WinGDI.BITMAPINFO bi = new WinGDI.BITMAPINFO(40);
            bi.bmiHeader.biSize = 40;
            boolean ok =
                    GDI.GetDIBits(blitDC, outputBitmap, 0, bounds.height,
                    (byte[]) null, bi, WinGDI.DIB_RGB_COLORS);
            if (ok) {
                WinGDI.BITMAPINFOHEADER bih = bi.bmiHeader;
                bih.biHeight = -Math.abs(bih.biHeight);
                bi.bmiHeader.biCompression = 0;
                return bufferedImageFromBitmap(blitDC, outputBitmap, bi);
            } else {
                return null;
            }
        } finally {
            GDI.DeleteObject(blitDC);
        }
    } finally {
        GDI.DeleteObject(outputBitmap);
        GDI.DeleteObject(windowDC);
    }
}
 
开发者ID:megablue,项目名称:Hearthtracker,代码行数:49,代码来源:HearthRobot.java

示例5: GetDIBits

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
boolean GetDIBits(HDC dc, HBITMAP bmp, int startScan, int scanLines,
byte[] pixels, BITMAPINFO bi, int usage);
 
开发者ID:megablue,项目名称:Hearthtracker,代码行数:3,代码来源:HearthRobot.java

示例6: capture

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
private static BufferedImage capture(HWND hWnd) throws WindowNotFoundException {

    HDC hdcWindow = User32.INSTANCE.GetDC(hWnd);
    HDC hdcMemDC = GDI32.INSTANCE.CreateCompatibleDC(hdcWindow);

    RECT bounds = new RECT();
    User32Extra.INSTANCE.GetClientRect(hWnd, bounds);

    int width = bounds.right - bounds.left;
    int height = bounds.bottom - bounds.top;
    
    if(width == 0 || height == 0) throw new peeknick.errormanager.WindowNotFoundException();

    HBITMAP hBitmap = GDI32.INSTANCE.CreateCompatibleBitmap(hdcWindow, width, height);

    HANDLE hOld = GDI32.INSTANCE.SelectObject(hdcMemDC, hBitmap);
    GDI32Extra.INSTANCE.BitBlt(hdcMemDC, 0, 0, width, height, hdcWindow, 0, 0, WinGDIExtra.SRCCOPY);

    GDI32.INSTANCE.SelectObject(hdcMemDC, hOld);
    GDI32.INSTANCE.DeleteDC(hdcMemDC);

    BITMAPINFO bmi = new BITMAPINFO();
    bmi.bmiHeader.biWidth = width;
    bmi.bmiHeader.biHeight = -height;
    bmi.bmiHeader.biPlanes = 1;
    bmi.bmiHeader.biBitCount = 32;
    bmi.bmiHeader.biCompression = WinGDI.BI_RGB;

    Memory buffer = new Memory(width * height * 4);
    GDI32.INSTANCE.GetDIBits(hdcWindow, hBitmap, 0, height, buffer, bmi, WinGDI.DIB_RGB_COLORS);

    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    image.setRGB(0, 0, width, height, buffer.getIntArray(0, width * height), 0, width);

    GDI32.INSTANCE.DeleteObject(hBitmap);
    User32.INSTANCE.ReleaseDC(hWnd, hdcWindow);

    return image;

  }
 
开发者ID:jardiacaj,项目名称:peeknick,代码行数:41,代码来源:Paint.java

示例7: CreateDIBitmap

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
/**
 * The CreateDIBitmap function creates a compatible bitmap (DDB) from a DIB
 * and, optionally, sets the bitmap bits.
 *
 * @param hDC Handle to a device context.
 * @param lpbmih Pointer to a bitmap information header structure, which may
 * be one of those shown in the following table.
 * @param fdwInit Specifies how the system initializes the bitmap bits.
 * @param lpbInit Pointer to an array of bytes containing the initial bitmap
 * data.
 * @param lpbmi Pointer to a BITMAPINFO structure that describes the
 * dimensions and color format of the array pointed to by the lpbInit
 * parameter.
 * @param fuUsage Specifies whether the bmiColors member of the BITMAPINFO
 * structure was initialized and, if so, whether bmiColors contains explicit
 * red, green, blue (RGB) values or palette indexes. The fuUsage parameter
 * must be one of the following values.
 * @return If the function succeeds, the return value is a handle to the
 * compatible bitmap. If the function fails, the return value is NULL. To
 * get extended error information, call GetLastError.
 */
HBITMAP CreateDIBitmap(HDC hDC, BITMAPINFOHEADER lpbmih, int fdwInit,
        Pointer lpbInit, BITMAPINFO lpbmi, int fuUsage);
 
开发者ID:jindrapetrik,项目名称:jpexs-decompiler,代码行数:24,代码来源:Gdi32.java

示例8: CreateDIBSection

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
/**
 * The CreateDIBSection function creates a DIB that applications can write
 * to directly. The function gives you a pointer to the location of the
 * bitmap bit values. You can supply a handle to a file-mapping object that
 * the function will use to create the bitmap, or you can let the system
 * allocate the memory for the bitmap.
 *
 * @param hDC Handle to a device context. If the value of iUsage is
 * DIB_PAL_COLORS, the function uses this device context's logical palette
 * to initialize the DIB colors.
 * @param pbmi Pointer to a BITMAPINFO structure that specifies various
 * attributes of the DIB, including the bitmap dimensions and colors.
 * @param iUsage Specifies the type of data contained in the bmiColors array
 * member of the BITMAPINFO structure pointed to by pbmi (either logical
 * palette indexes or literal RGB values).
 * @param ppvBits Pointer to a variable that receives a pointer to the
 * location of the DIB bit values.
 * @param hSection Handle to a file-mapping object that the function will
 * use to create the DIB. This parameter can be NULL.
 * @param dwOffset Specifies the offset from the beginning of the
 * file-mapping object referenced by hSection where storage for the bitmap
 * bit values is to begin.
 * @return Specifies the offset from the beginning of the file-mapping
 * object referenced by hSection where storage for the bitmap bit values is
 * to begin.
 */
HBITMAP CreateDIBSection(HDC hDC, BITMAPINFO pbmi, int iUsage,
        PointerByReference ppvBits, Pointer hSection, int dwOffset);
 
开发者ID:jindrapetrik,项目名称:jpexs-decompiler,代码行数:29,代码来源:Gdi32.java

示例9: CreateCompatibleBitmap

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
/**
 * The CreateCompatibleBitmap function creates a bitmap compatible with the
 * device that is associated with the specified device context.
 *
 * @param hDC Handle to a device context.
 * @param width Specifies the bitmap width, in pixels.
 * @param height Specifies the bitmap height, in pixels.
 * @return If the function succeeds, the return value is a handle to the
 * compatible bitmap (DDB). If the function fails, the return value is NULL.
 * To get extended error information, call GetLastError.
 */
HBITMAP CreateCompatibleBitmap(HDC hDC, int width, int height);
 
开发者ID:jindrapetrik,项目名称:jpexs-decompiler,代码行数:13,代码来源:Gdi32.java

示例10: GetDIBits

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
/**
 * The GetDIBits function retrieves the bits fo the specified compatible
 * bitmap and copies them into a buffer as a DIB using the specified format.
 *
 * @param hdc A handle to the device context.
 * @param hbmp A handle to the bitmap. This must be a compatible bitmap
 * (DDB).
 * @param uStartScan The first scan line to retrieve
 * @param cScanLines The number of scan lines to retrieve.
 * @param lpvBits A pointer to a buffer to receive the bitmap data. If this
 * parameter is <code>null</code>, the function passes the dimensions and
 * format of the bitmap to the {@link BITMAPINFO} structure pointed to by
 * the <i>lpbi</i> parameter.
 * @param lpbi A pointer to a {@link BITMAPINFO} structure that specifies
 * the desired format for the DIB data.
 * @param uUsage The format of the bmiColors member of the {@link
 * BITMAPINFO} structure.
 * @return the number of scan lines copied from the bitmap
 */
int GetDIBits(HDC hdc, HBITMAP hbmp, int uStartScan, int cScanLines, Pointer lpvBits, BITMAPINFO lpbi, int uUsage);
 
开发者ID:jindrapetrik,项目名称:jpexs-decompiler,代码行数:21,代码来源:Gdi32.java

示例11: GetBitmapDimensionEx

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
/**
 * Retrieves the dimension of the bitmap passed into it.
 *
 * @param hBitmap [in] A handle to a compatible bitmap (DDB).
 * @param lpDimension [out]* A pointer to a SIZE structure to receive the bitmap dimensions. For more information, see Remarks.
 * @return <b>true</b> if the function succeeds, <b>false</b> if the function fails.
 * Remarks
 * The function returns a data structure that contains fields for the height and width of the bitmap, in .01-mm units. If those dimensions have not yet been set, the structure that is returned will have zeroes in those fields
 */
public boolean GetBitmapDimensionEx(HBITMAP hBitmap, SIZE size);
 
开发者ID:PM-Master,项目名称:Harmonia-1.5,代码行数:11,代码来源:GDI32Ext.java

示例12: GetDIBits

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
/** The GetDIBits function retrieves the bits fo the specified compatible
 * bitmap and copies them into a buffer as a DIB using the specified
 * format.
 * @param hdc A handle to the device context.
 * @param hbmp A handle to the bitmap.  This must be a compatible bitmap
 * (DDB).
 * @param uStartScan The first scan line to retrieve
 * @param cScanLines The number of scan lines to retrieve.
 * @param lpvBits A pointer to a buffer to receive the bitmap data.  If
 * this parameter is <code>null</code>, the function passes the dimensions
 * and format of the bitmap to the {@link BITMAPINFOHEADER_MANUAL} structure pointed to
 * by the <i>lpbi</i> parameter.
 * @param lpbi A pointer to a {@link BITMAPINFOHEADER_MANUAL} structure that specifies
 * the desired format for the DIB data.
 * @param uUsage The format of the bmiColors member of the {@link
 * BITMAPINFO} structure. This method will not return those as they don't exist in the BITMAPINFOHEADER
 * structure.
 */
int GetDIBits(HDC hdc, HBITMAP hbmp, int uStartScan, int cScanLines, Pointer lpvBits, BITMAPINFOHEADER_MANUAL lpbi, int uUsage);
 
开发者ID:PM-Master,项目名称:Harmonia-1.5,代码行数:20,代码来源:GDI32Ext.java

示例13: GetDIBits

import com.sun.jna.platform.win32.WinDef.HBITMAP; //导入依赖的package包/类
boolean GetDIBits( HDC dc, HBITMAP bmp, int startScan, int scanLines, byte[] pixels, BITMAPINFO bi, int usage ); 
开发者ID:icza,项目名称:sc2gears,代码行数:2,代码来源:JNAScreenshot.java


注:本文中的com.sun.jna.platform.win32.WinDef.HBITMAP类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。