Определение размера и типа картинки
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Определение размера и типа картинки Expand / Collapse
Автор
Сообщение
06.10.2002 22:34
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 30.07.2003 14:56
Сообщ.: 43, Visits: 474
Нет ни у кого под рукой исходника на с? Определить тип картинки (jpg или gif) и ее размеры (ширина и высота). Ведь точно у кого-нибудь есть, а? :) Не в доки же лезть :)
Спасибо.
Сообщ. #762842
07.10.2002 15:05
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum 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
Сообщ. #762902
07.10.2002 15:10
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 13.11.2003 10:53
Сообщ.: 43, Visits: 474
Gif - изображение начинается с "GIF89a" - GIF точно, а 89a - версия может быть разной
JPEG - в первых примерно 20 символах должно встретиться "JFIF"
Сообщ. #762904
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 10:19