#include "stdafx.h"
#include "Resample.h" // this is dll for resizing the image
class imageReader
{
public:
imageReader();
~imageReader();
HBITMAP readBuffer(char *buffer, HWND parentWindow, RECT rectDisp);
void renderImage(HBITMAP disimage);
private:
HWND parent;
RECT rect;
HBITMAP image;
};
imageReader::imageReader()
{
}
imageReader::~imageReader()
{
}
HBITMAP imageReader::readBuffer(char *buffer, HWND parentWindow, RECT rectDisp)
{
parent=parentWindow;
rect=rectDisp;
BITMAPFILEHEADER& bfh = (BITMAPFILEHEADER&)buffer[0];
BITMAPINFO& bi = (BITMAPINFO&)buffer[sizeof(BITMAPFILEHEADER)];
BITMAPINFOHEADER& bih = bi.bmiHeader;
char* bitmap = &buffer[bfh.bfOffBits];
HDC hdcW = GetDC(parent); image = CreateDIBitmap( hdcW, &bih, CBM_INIT, bitmap, &bi, DIB_RGB_COLORS );
image= CreateResampledBitmap(hdcW, image, rect.right-rect.left, rect.bottom-rect.top, STOCK_FILTER_BOX);
return image;
}
void imageReader::renderImage(HBITMAP disimage)
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(parent, &ps);
BITMAP bm;
HDC hdcMem = CreateCompatibleDC(hdc);
SelectObject(hdcMem, disimage);
GetObject(disimage, sizeof(bm), &bm);
BitBlt(hdc,rect.left, rect.top, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);
DeleteDC(hdcMem);
EndPaint( parent, &ps );
}
/