2 |
* Copyright (C) 2001 Dr.Yovav Gad <[email protected]> |
* Copyright (C) 2001 Dr.Yovav Gad <[email protected]> |
3 |
* Copyright (C) 2005 Timo Schulz |
* Copyright (C) 2005 Timo Schulz |
4 |
* |
* |
5 |
* This file is part of PTD. |
* This file is part of WinPT. |
6 |
* |
* |
7 |
* PTD is free software; you can redistribute it and/or modify |
* WinPT is free software; you can redistribute it and/or modify |
8 |
* it under the terms of the GNU General Public License as published by |
* it under the terms of the GNU General Public License as published by |
9 |
* the Free Software Foundation; either version 2 of the License, or |
* the Free Software Foundation; either version 2 of the License, or |
10 |
* (at your option) any later version. |
* (at your option) any later version. |
11 |
* |
* |
12 |
* PTD is distributed in the hope that it will be useful, |
* WinPT is distributed in the hope that it will be useful, |
13 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 |
* GNU General Public License for more details. |
* GNU General Public License for more details. |
60 |
CJPG::~CJPG (void) |
CJPG::~CJPG (void) |
61 |
{ |
{ |
62 |
if (m_IPicture != NULL) |
if (m_IPicture != NULL) |
63 |
FreePictureData (); |
freePictureData (); |
64 |
} |
} |
65 |
|
|
66 |
|
|
68 |
/* Free the allocated memory that holdes the IPicture Interface data |
/* Free the allocated memory that holdes the IPicture Interface data |
69 |
and clear picture information. */ |
and clear picture information. */ |
70 |
void |
void |
71 |
CJPG::FreePictureData (void) |
CJPG::freePictureData (void) |
72 |
{ |
{ |
73 |
if (m_IPicture != NULL) { |
if (m_IPicture != NULL) { |
74 |
m_IPicture->Release(); |
m_IPicture->Release(); |
82 |
|
|
83 |
/* Open a JPG File And Load It Into IPicture (Interface) */ |
/* Open a JPG File And Load It Into IPicture (Interface) */ |
84 |
BOOL |
BOOL |
85 |
CJPG::Load (LPCSTR sFilePathName) |
CJPG::load (LPCSTR sFilePathName) |
86 |
{ |
{ |
87 |
BOOL bResult = FALSE; |
BOOL bResult = FALSE; |
88 |
FILE * f; |
FILE * f; |
89 |
int nSize = 0; |
int nSize = 0; |
90 |
|
|
91 |
if (m_IPicture != NULL) |
if (m_IPicture != NULL) |
92 |
FreePictureData (); |
freePictureData (); |
93 |
|
|
94 |
f = fopen (sFilePathName, "rb"); |
f = fopen (sFilePathName, "rb"); |
95 |
if (f) { |
if (f) { |
103 |
} |
} |
104 |
memset (pBuffer, 0, nSize); |
memset (pBuffer, 0, nSize); |
105 |
if (fread(pBuffer, 1, nSize, f) > 0) { |
if (fread(pBuffer, 1, nSize, f) > 0) { |
106 |
if (LoadPictureData (pBuffer, nSize)) |
if (loadPictureData (pBuffer, nSize)) |
107 |
bResult = TRUE; |
bResult = TRUE; |
108 |
} |
} |
109 |
fclose (f); |
fclose (f); |
137 |
/* read the picture data from a source (file / resource) |
/* read the picture data from a source (file / resource) |
138 |
and load it into the current IPicture object in use */ |
and load it into the current IPicture object in use */ |
139 |
BOOL |
BOOL |
140 |
CJPG::LoadPictureData (BYTE *pBuffer, int nSize) |
CJPG::loadPictureData (BYTE *pBuffer, int nSize) |
141 |
|
|
142 |
{ |
{ |
143 |
BOOL bResult = FALSE; |
BOOL bResult = FALSE; |
178 |
|
|
179 |
/* Draw the loaded picture direct to the client DC */ |
/* Draw the loaded picture direct to the client DC */ |
180 |
BOOL |
BOOL |
181 |
CJPG::Show (HDC pDC, POINT *LeftTop, POINT *WidthHeight, |
CJPG::show (HDC pDC, POINT *LeftTop, POINT *WidthHeight, |
182 |
int MagnifyX, int MagnifyY) |
int MagnifyX, int MagnifyY) |
183 |
|
|
184 |
{ |
{ |
191 |
m_IPicture->get_Width (&Width); |
m_IPicture->get_Width (&Width); |
192 |
m_IPicture->get_Height (&Height); |
m_IPicture->get_Height (&Height); |
193 |
|
|
194 |
if (MagnifyX == NULL) |
if (MagnifyX == 0) |
195 |
MagnifyX = 0; |
MagnifyX = 0; |
196 |
if (MagnifyY == NULL) |
if (MagnifyY == 0) |
197 |
MagnifyY = 0; |
MagnifyY = 0; |
198 |
MagnifyX = int(MulDiv (Width, GetDeviceCaps(pDC, LOGPIXELSX), HIMETRIC_INCH) * MagnifyX); |
MagnifyX = int(MulDiv (Width, GetDeviceCaps(pDC, LOGPIXELSX), HIMETRIC_INCH) * MagnifyX); |
199 |
MagnifyY = int(MulDiv (Height, GetDeviceCaps(pDC, LOGPIXELSY), HIMETRIC_INCH) * MagnifyY); |
MagnifyY = int(MulDiv (Height, GetDeviceCaps(pDC, LOGPIXELSY), HIMETRIC_INCH) * MagnifyY); |
227 |
/* Get the original picture pixel size (ignore what current DC is using) |
/* Get the original picture pixel size (ignore what current DC is using) |
228 |
pointer to a Device Context is needed for pixel calculation, */ |
pointer to a Device Context is needed for pixel calculation, */ |
229 |
BOOL |
BOOL |
230 |
CJPG::UpdateSizeOnDC (HDC pDC) |
CJPG::updateSizeOnDC (HDC pDC) |
231 |
|
|
232 |
{ |
{ |
233 |
if(pDC == NULL || m_IPicture == NULL) { |
if(pDC == NULL || m_IPicture == NULL) { |