2007/05/26

簡單取得PNG長寬

讀取過jpg的長寬 接下來的是PNG的長寬比起JPG算是簡單多了
以下是程式碼,請參考




bool GetPngWidthHeight(const wxChar* buf,int size,int&Width,int& Height,bool& ReadWidthHeight)
{
ReadWidthHeight=false;

if (size < 29) return false;

if ((BYTE)buf[0] == 137 && (BYTE)buf[1] == 80 && (BYTE)buf[2] == 78 && (BYTE)buf[3] == 71 &&
(BYTE)buf[4] == 13 && (BYTE)buf[5] == 10 && (BYTE)buf[6] == 26 && (BYTE)buf[7] == 10 )
if(!strncmp(&buf[12], "IHDR", 4))
{
Width=((BYTE)buf[16]<<24) + ((BYTE)buf[17]<<16) + (buf[18]<<8) + (BYTE)buf[19];
Height=((BYTE)buf[20]<<24) + ((BYTE)buf[21]<<16) + (buf[22]<<8) + (BYTE)buf[23];

ReadWidthHeight=true;

return true;
}

return false;
}

以上 , 不負責讀取所有格式,另有問題概不負責.
歡迎轉載並請標明出處.謝謝


ps.程式碼不能由Zoundry 編輯,有點小麻煩說....不知道有沒有人知道方法?



參考:
http://www.google.com/codesearch?hl=en&q=show:F37na6T0rTQ:Z5xzSl8N0x4:T9AszC_EqFY&sa=N&ct=rd&cs_p=http://security.debian.org/pool/updates/main/k/kdegraphics/kdegraphics_3.3.2.orig.tar.gz&cs_f=kdegraphics-3.3.2/kfile-plugins/png/kfile_png.cpp


沒有留言: