HRESULT LoadPSD( LPSTR strFilename ) // 读取PSD文件
{
DWORD dwWidth, dwHeight; // 宽高
long lSurfWidth = m_Rect.right - m_Rect.left;
long lSurfHeight = m_Rect.bottom - m_Rect.top;
WORD CompressionType; // 压缩类型
HDC hDC;
FILE *fpPSD;
WORD ChannelCount; // 通道数
// 打开PSD文件
if ( ( fpPSD = fopen ( strFilename, "rb" ) ) == NULL ) {
return E_FAIL;
}
// 头四个字节为"8BPS"
char signature[5];
signature[0] = fgetc( fpPSD );
signature[1] = fgetc( fpPSD );
signature[2] = fgetc( fpPSD );
signature[3] = fgetc( fpPSD );
signature[4] = '/0';
if ( strcmp( signature,"8BPS" ) != 0 ) {
return E_FAIL;
}
// 版本必须为1
if ( Read16( fpPSD ) != 1 ) {
return E_FAIL;
}
// 跳过一些数据 (总是0)
Read32( fpPSD );
Read16( fpPSD );
// 读取通道数
ChannelCount = Read16( fpPSD );
{
DWORD dwWidth, dwHeight; // 宽高
long lSurfWidth = m_Rect.right - m_Rect.left;
long lSurfHeight = m_Rect.bottom - m_Rect.top;
WORD CompressionType; // 压缩类型
HDC hDC;
FILE *fpPSD;
WORD ChannelCount; // 通道数
// 打开PSD文件
if ( ( fpPSD = fopen ( strFilename, "rb" ) ) == NULL ) {
return E_FAIL;
}
// 头四个字节为"8BPS"
char signature[5];
signature[0] = fgetc( fpPSD );
signature[1] = fgetc( fpPSD );
signature[2] = fgetc( fpPSD );
signature[3] = fgetc( fpPSD );
signature[4] = '/0';
if ( strcmp( signature,"8BPS" ) != 0 ) {
return E_FAIL;
}
// 版本必须为1
if ( Read16( fpPSD ) != 1 ) {
return E_FAIL;
}
// 跳过一些数据 (总是0)
Read32( fpPSD );
Read16( fpPSD );
// 读取通道数
ChannelCount = Read16( fpPSD );