|
|
|
Forum Member
      
участник
Last Login: 30.07.2003 14:56
Сообщ.: 43,
Visits: 474
|
|
Нет ни у кого под рукой исходника на с? Определить тип картинки (jpg или gif) и ее размеры (ширина и высота). Ведь точно у кого-нибудь есть, а? :) Не в доки же лезть :) Спасибо.
|
|
|
|
|
Forum Member
      
участник
Last Login: 13.11.2003 10:53
Сообщ.: 43,
Visits: 474
|
|
Есть на VB определение размеров картинки (зная тип)
If is_image Then If m_img_type = "gif" Then n1 = AscB(MidB(m_content, 7, 1)) n2 = AscB(MidB(m_content, 8, 1)) m_img_size(0) = n1 + n2 * 256 n1 = AscB(MidB(m_content, 9, 1)) n2 = AscB(MidB(m_content, 10, 1)) m_img_size(1) = n1 + n2 * 256 ElseIf m_img_type = "pjpeg" Then '-----searching for SOF0 marker 0xFF=255 0xC0=192 i = InStrB(m_content, ChrB(255) & ChrB(192)) If i Then '-----SOF0 marker found i = i + 5 n1 = AscB(MidB(m_content, i, 1)) n2 = AscB(MidB(m_content, i + 1, 1)) m_img_size(1) = n1 * 256 + n2 i = i + 2 n1 = AscB(MidB(m_content, i, 1)) n2 = AscB(MidB(m_content, i + 1, 1)) m_img_size(0) = n1 * 256 + n2 End If ElseIf m_img_type = "x-png" Then '-----searching for IHDR Image header i = InStrB(m_content, getByteString("IHDR")) If i Then '-----Width: 4 bytes '-----Height: 4 bytes i = i + 4 n1 = AscB(MidB(m_content, i, 1)) n2 = AscB(MidB(m_content, i + 1, 1)) n3 = AscB(MidB(m_content, i + 2, 1)) n4 = AscB(MidB(m_content, i + 3, 1)) m_img_size(0) = ((256 * n1 + n2) * 256 + n3) * 256 + n4 i = i + 4 n1 = AscB(MidB(m_content, i, 1)) n2 = AscB(MidB(m_content, i + 1, 1)) n3 = AscB(MidB(m_content, i + 2, 1)) n4 = AscB(MidB(m_content, i + 3, 1)) m_img_size(1) = ((256 * n1 + n2) * 256 + n3) * 256 + n4 End If End If End If
|
|
|
|
|
Forum Member
      
участник
Last Login: 13.11.2003 10:53
Сообщ.: 43,
Visits: 474
|
|
Gif - изображение начинается с "GIF89a" - GIF точно, а 89a - версия может быть разной JPEG - в первых примерно 20 символах должно встретиться "JFIF"
|
|
|
|