|
|
/******************************Module*Header*******************************\
* Module Name: CBitmaps.cpp * * This file contains the code to support the functionality test harness * for GDI+. This includes menu options and calling the appropriate * functions for execution. * * Created: 05-May-2000 - Jeff Vezina [t-jfvez] * * Copyright (c) 2000 Microsoft Corporation * \**************************************************************************/ #include "CBitmaps.h"
CBitmaps::CBitmaps(BOOL bRegression) { strcpy(m_szName,"Image : Filters"); m_bRegression=bRegression; }
CBitmaps::~CBitmaps() { }
void CBitmaps::Draw(Graphics *g) { Bitmap *bitmap = new Bitmap(L"..\\data\\3x3.bmp");
PointF dest[3];
for(int i=0; i<=InterpolationModeHighQualityBicubic; i++) { // for all the interpolation modes
g->SetInterpolationMode((InterpolationMode)i);
// simple scale
dest[0].X = (float)0/1024.0f*TESTAREAWIDTH; dest[0].Y = (float)i*100.0f/768.0f*TESTAREAHEIGHT; dest[1].X = (float)100/1024.0f*TESTAREAWIDTH; dest[1].Y = (float)i*100.0f/768.0f*TESTAREAHEIGHT; dest[2].X = (float)0/1024.0f*TESTAREAWIDTH; dest[2].Y = (float)(100+i*100.0f)/768.0f*TESTAREAHEIGHT; g->DrawImage(bitmap, dest, 3, 0, 0, 3, 3, UnitPixel);
// rotate 90
dest[0].X = (float)200/1024.0f*TESTAREAWIDTH; dest[0].Y = (float)i*100.0f/768.0f*TESTAREAHEIGHT; dest[1].X = (float)200/1024.0f*TESTAREAWIDTH; dest[1].Y = (float)(100+i*100.0f)/768.0f*TESTAREAHEIGHT; dest[2].X = (float)100/1024.0f*TESTAREAWIDTH; dest[2].Y = (float)i*100.0f/768.0f*TESTAREAHEIGHT; g->DrawImage(bitmap, dest, 3, 0, 0, 3, 3, UnitPixel); // rotate 180
dest[0].X = (float)300/1024.0f*TESTAREAWIDTH; dest[0].Y = (float)(100+i*100.0f)/768.0f*TESTAREAHEIGHT; dest[1].X = (float)200/1024.0f*TESTAREAWIDTH; dest[1].Y = (float)(100+i*100.0f)/768.0f*TESTAREAHEIGHT; dest[2].X = (float)300/1024.0f*TESTAREAWIDTH; dest[2].Y = (float)i*100.0f/768.0f*TESTAREAHEIGHT; g->DrawImage(bitmap, dest, 3, 0, 0, 3, 3, UnitPixel); // rotate 270
dest[0].X = (float)300/1024.0f*TESTAREAWIDTH; dest[0].Y = (float)(100+i*100.0f)/768.0f*TESTAREAHEIGHT; dest[1].X = (float)300/1024.0f*TESTAREAWIDTH; dest[1].Y = (float)i*100.0f/768.0f*TESTAREAHEIGHT; dest[2].X = (float)400/1024.0f*TESTAREAWIDTH; dest[2].Y = (float)(100+i*100.0f)/768.0f*TESTAREAHEIGHT; g->DrawImage(bitmap, dest, 3, 0, 0, 3, 3, UnitPixel); }
delete bitmap;
WCHAR *filename = L"..\\data\\winnt256.bmp"; bitmap = new Bitmap(filename);
dest[0].X = (int)(300.0f/450.0f*TESTAREAWIDTH); dest[0].Y = (int)(50.0f/450.0f*TESTAREAHEIGHT); dest[1].X = (int)(450.0f/450.0f*TESTAREAWIDTH); dest[1].Y = (int)(50.0f/450.0f*TESTAREAHEIGHT); dest[2].X = (int)(240.0f/450.0f*TESTAREAWIDTH); dest[2].Y = (int)(200.0f/450.0f*TESTAREAHEIGHT); g->DrawImage(bitmap, &dest[0], 3);
Image *imageThumb = bitmap->GetThumbnailImage(32, 32); RectF thumbRect( (int)(220.0f/450.0f*TESTAREAWIDTH), (int)(50.0f/450.0f*TESTAREAHEIGHT), (REAL) imageThumb->GetWidth(), (REAL) imageThumb->GetHeight() ); g->DrawImage(imageThumb, thumbRect); delete imageThumb;
g->SetInterpolationMode(InterpolationModeHighQualityBicubic);
dest[0].X = (int)(300.0f/450.0f*TESTAREAWIDTH); dest[0].Y = (int)(250.0f/450.0f*TESTAREAHEIGHT); dest[1].X = (int)(450.0f/450.0f*TESTAREAWIDTH); dest[1].Y = (int)(250.0f/450.0f*TESTAREAHEIGHT); dest[2].X = (int)(300.0f/450.0f*TESTAREAWIDTH); dest[2].Y = (int)(400.0f/450.0f*TESTAREAHEIGHT); g->DrawImage(bitmap, &dest[0], 3); delete bitmap; }
|