Trang 3 / 5 FirstFirst 12345 LastLast
Hiển thị kết quả từ 21 đến 30 / 41
  1. #21
    Tham gia
    18-09-2002
    Location
    Ha Noi
    Bài viết
    1,311
    Like
    0
    Thanked 13 Times in 10 Posts
    Đây là code lấy thông tin về width + height của JPEG, BMP, GIF, PNG nhưng viết bằng VB chuyển qua pascal hay gì gì chắc cũng chẳng khó đâu.
    Public Type ImgDimType
    height As Long
    width As Long
    End Type
    Public Function getImgDim(ByVal fileName As String, _
    Ext As String) As ImgDimType


    'Inputs:
    '
    'fileName is a string containing the path name of the image file.
    '
    'ImgDim is passed as an empty type var and contains the height
    'and width that's passed back.
    '
    'Ext is passed as an empty string and contains the image type
    'as a 3 letter description that's passed back.
    '
    '
    'Returns:
    '
    'True if the function was successful.


    'declare vars
    Dim handle As Integer, isValidImage As Boolean
    Dim byteArr(255) As Byte, i As Integer

    'init vars
    isValidImage = False
    ImgDim.height = 0
    ImgDim.width = 0

    'open file and get 256 byte chunk
    handle = FreeFile
    On Error GoTo endFunction
    Open fileName For Binary Access Read As #handle
    Get handle, , byteArr
    Close #handle


    'check for jpg header (SOI): &HFF and &HD8
    ' contained in first 2 bytes
    If byteArr(0) = &HFF And byteArr(1) = &HD8 Then
    isValidImage = True
    Else
    GoTo checkGIF
    End If

    'check for SOF marker: &HFF and &HC0 TO &HCF
    For i = 0 To 255
    If byteArr(i) = &HFF And byteArr(i + 1) >= &HC0 _
    And byteArr(i + 1) <= &HCF Then
    ImgDim.height = byteArr(i + 5) * 256 + byteArr(i + 6)
    ImgDim.width = byteArr(i + 7) * 256 + byteArr(i + 8)
    Exit For
    End If
    Next i

    'get image type and exit
    Ext = "jpg"
    GoTo endFunction


    checkGIF:

    'check for GIF header
    If byteArr(0) = &H47 And byteArr(1) = &H49 And byteArr(2) = &H46 _
    And byteArr(3) = &H38 Then
    ImgDim.width = byteArr(7) * 256 + byteArr(6)
    ImgDim.height = byteArr(9) * 256 + byteArr(8)
    isValidImage = True
    Else
    GoTo checkBMP
    End If

    'get image type and exit
    Ext = "gif"
    GoTo endFunction


    checkBMP:

    'check for BMP header
    If byteArr(0) = 66 And byteArr(1) = 77 Then
    isValidImage = True
    Else
    GoTo checkPNG
    End If

    'get record type info
    If byteArr(14) = 40 Then

    'get width and height of BMP
    ImgDim.width = byteArr(21) * 256 ^ 3 + byteArr(20) * 256 ^ 2 _
    + byteArr(19) * 256 + byteArr(18)

    ImgDim.height = byteArr(25) * 256 ^ 3 + byteArr(24) * 256 ^ 2 _
    + byteArr(23) * 256 + byteArr(22)

    'another kind of BMP
    ElseIf byteArr(17) = 12 Then

    'get width and height of BMP
    ImgDim.width = byteArr(19) * 256 + byteArr(18)
    ImgDim.height = byteArr(21) * 256 + byteArr(20)

    End If

    'get image type and exit
    Ext = "bmp"
    GoTo endFunction


    checkPNG:

    'check for PNG header
    If byteArr(0) = &H89 And byteArr(1) = &H50 And byteArr(2) = &H4E _
    And byteArr(3) = &H47 Then
    ImgDim.width = byteArr(18) * 256 + byteArr(19)
    ImgDim.height = byteArr(22) * 256 + byteArr(23)
    isValidImage = True
    Else
    GoTo endFunction
    End If

    Ext = "png"


    endFunction:

    'return function's success status
    getImgDim = isValidImage


    End Function

  2. #22
    Tham gia
    15-08-2004
    Bài viết
    9
    Like
    0
    Thanked 0 Times in 0 Posts
    Như vậy có đại ca nào chuyển dùm mình được không .Nói thật nha mình chỉ biết pấcl thôi chứ các ngôn ngữ khách không có học

  3. #23
    Tham gia
    29-02-2004
    Bài viết
    3,942
    Like
    0
    Thanked 12 Times in 11 Posts
    Lấy thông tin thì chỉ cần biết header thôi, chuyện này không quan trọng lắm, quan trọng là làm sao để nó được in ra monitor kìa.
    Còn bạn diepthanhtoan84, có lẽ bạn nên tự tìm hiểu thêm về các ngôn ngữ, mua sách về xem rồi viết thử riết cũng được, nhất là đã có kiến thức về pascal, vì hầu hết các ngôn ngữ đều tựa tựa nhau, trừ assembly thôi.Mình cũng tự học chứ có ai dạy dỗ gì đâu, trong trường tới giờ tin toàn là chơi game, ông thầy chẳng dạy gì cả, chán gần chết.

  4. #24
    Tham gia
    15-08-2004
    Bài viết
    9
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình thử xem sao nhé! nhưng mà sách pascal loại nào bây giờ,bạn có thể giới thiệu cho mình một số sách được không. Sách nào hấp dẩn ấy. mình cám ơn trước nhé!!!

  5. #25
    Tham gia
    29-02-2004
    Bài viết
    3,942
    Like
    0
    Thanked 12 Times in 11 Posts
    Cách tốt nhất để học là xem các ví dụ đấy bạn ạ. Bạn có thể lên một số trang web có mã nguồn để học
    www.programmersheaven.com chẳng hạn,
    Còn sách dạy ư, trời ạ,có thể nói chẳng cuốn nào hấp dẫn cả, đọc vào mất công tốn thời gian, vì cuốn nào cũng na ná với nhau, chỉ có được một số ít thông tin trong đó là hữu dụng. Còn nữa, hiện nay sách về pascal hơi bị hiếm vì ít ai chịu dùng nó, cũng may là trường học có dạy nếu không chắc pascal tuyệt chủng lâu rồi quá.

  6. #26
    Tham gia
    26-08-2004
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts

    Rất hay !

    viết bằng hợp ngữ được không các bạn

  7. #27
    Tham gia
    18-09-2002
    Location
    Ha Noi
    Bài viết
    1,311
    Like
    0
    Thanked 13 Times in 10 Posts
    quá tốt! bạn viết bằng hợp ngữ thì mấy cái địa chỉ bạn càng dễ dàng xử lý!

  8. #28
    Tham gia
    06-07-2003
    Location
    Tp hcm
    Bài viết
    34
    Like
    0
    Thanked 0 Times in 0 Posts
    Vào Đây Để tham khảo thêm:
    http://www.dickmann.org/pascal/files.htm

  9. #29
    Tham gia
    16-07-2004
    Bài viết
    662
    Like
    0
    Thanked 3 Times in 3 Posts
    Này đại ca cuối cùng thì hỗ trợ window đưa ra ảnh BMP hay là bác lập trình đưa ra monitor screen vậy ???

  10. #30
    Tham gia
    06-07-2003
    Location
    Tp hcm
    Bài viết
    34
    Like
    0
    Thanked 0 Times in 0 Posts
    Ùh đúng rùi, tui lộn

Trang 3 / 5 FirstFirst 12345 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •