Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Определение размера картинки jpg

2.1K
22 июня 2005 года
pnvnik
40 / / 26.04.2004
Кто-нибудь сталкивался с задачей определения
размера картинки? В частности интересует размер jpg файла.
648
22 июня 2005 года
Tiraspolsky
220 / / 23.07.2003
Цитата:
Originally posted by pnvnik
Кто-нибудь сталкивался с задачей определения
размера картинки? В частности интересует размер jpg файла.



Размер файла очень просто - FileLen(filename).
Если же нужно определить размер картинки в пикселах, то могу предложить код:

Код:
Private Function getHWjpg(file As String, X As Long, Y As Long) As Boolean
    Dim s As String, s1 As String, j As Long, i As Integer, n As Integer, k As Integer
    Dim h As Long, b As Byte
    On Error GoTo sos
    getHWjpg = False
    Open file For Binary As #1
    Get #1, , i
    If Not Hex(i) = "D8FF" Then
        MsgBox file & " - не файл формата JPEG"
        Close #1
        Exit Function
    End If
    While Not EOF(1)
        Get #1, , i
        If Hex(i) <> "C0FF" Then
            GoSub nextSegment
        Else
            Get #1, , i 'длина сегмента
            Get #1, , b 'точность
            For k = 0 To 1
                Get #1, , i
                GoSub calc
                If k = 0 Then
                    Y = j 'высота в pixels
                Else
                    X = j 'ширина в pixels
                End If
            Next
            Close #1
            If X = 0 Or Y = 0 Then MsgBox file & " - Invalid image (H=0 OR W=0)" Else getHWjpg = True
            Exit Function
        End If
    Wend
    MsgBox "Не найдено начало кадра"
    Close #1
    Exit Function
nextSegment:
    Get #1, , i
    GoSub calc 'j - длина сегменьа
    h = Seek(1)
    Seek #1, h + j - 2
    Return
calc:
    s = Hex(i)
    s = String(4 - Len(s), "0") & s
    s = Right$(s, 2) & Left$(s, 2)
    j = 0
    For i = 0 To 3
        s1 = Mid$(s, 4 - i, 1)
        If s1 < "A" Then n = Val(s1) Else n = Asc(s1) - 55
        j = j + n * 16 ^ i
    Next
    Return
sos:
    MsgBox Err.Description
End Function
2.1K
22 июня 2005 года
pnvnik
40 / / 26.04.2004
Спасибо, нужен был именно код для определения
размера картинки, а не файла.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог