diff options
Diffstat (limited to 'test/lua/info.lua')
-rw-r--r-- | test/lua/info.lua | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/test/lua/info.lua b/test/lua/info.lua deleted file mode 100644 index b1afb2a..0000000 --- a/test/lua/info.lua +++ /dev/null @@ -1,149 +0,0 @@ -require"imlua" -require"lfs" - -function PrintError(error) - local msg = {} - msg[im.ERR_OPEN] = "Error Opening File." - msg[im.ERR_MEM] = "Insuficient memory." - msg[im.ERR_ACCESS] = "Error Accessing File." - msg[im.ERR_DATA] = "Image type not Suported." - msg[im.ERR_FORMAT] = "Invalid Format." - msg[im.ERR_COMPRESS] = "Invalid or unsupported compression." - - if msg[error] then - print(msg[error]) - else - print("Unknown Error.") - end -end - -function FindZero(data) - if (not data) then return false end - for i = 1, table.getn(data) do - if data[i] == 0 then - return true - end - end - return false -end - -function AttribData2Str(data, data_type) - local data_str - - if data_type == im.BYTE then - data_str = string.format("%3d", data[1]) - elseif data_type == im.USHORT then - data_str = string.format("%5d", data[1]) - elseif data_type == im.INT then - data_str = string.format("%5d", data[1]) - elseif data_type == im.FLOAT then - data_str = string.format("%5.2f", data[1]) - elseif data_type == im.CFLOAT then - data_str = string.format("%5.2f, %5.2f", data[1], data[2]) - end - - return data_str -end - -function GetSizeDesc(size) - local size_desc - - if size < 1024 then - size_desc = "b" - else - size = size / 1024 - - if size < 1024 then - size_desc = "Kb" - else - size = size / 1024 - size_desc = "Mb" - end - end - - return size, size_desc -end - -function FileSize(file_name) - if lfs then - local attr = lfs.attributes(file_name) - return attr.size - else - return 0 - end -end - -function PrintImageInfo(file_name) - print("IM Info") - print(string.format(" File Name:\n %s", file_name)) - - local ifile, error = im.FileOpen(file_name) - if not ifile then - PrintError(error) - return nil - end - - local file_size = FileSize(file_name) - - print(string.format(" File Size: %.2f %s", GetSizeDesc(file_size))) - - local format, compression, image_count = ifile:GetInfo() - - local error, format_desc = im.FormatInfo(format) - print(string.format(" Format: %s - %s", format, format_desc)) - print(string.format(" Compression: %s", compression)) - print(string.format(" Image Count: %d", image_count)) - for i = 1, image_count do - local error, width, height, color_mode, data_type = ifile:ReadImageInfo(i-1) - if width == nil then - PrintError(height) - ifile:Close() - return nil - end - - print(string.format(" Image #%d", i)) - print(string.format(" Width: %d", width)) - print(string.format(" Height: %d", height)) - print(string.format(" Color Space: %s", im.ColorModeSpaceName(color_mode))) - print(string.format(" Has Alpha: %s", im.ColorModeHasAlpha(color_mode) and "Yes" or "No")) - print(string.format(" Is Packed: %s", im.ColorModeIsPacked(color_mode) and "Yes" or "No")) - print(string.format(" Is Top Down: %s", im.ColorModeIsTopDown(color_mode) and "Yes" or "No")) - print(string.format(" Data Type: %s", im.DataTypeName(data_type))) - - local image_size = im.ImageDataSize(width, height, color_mode, data_type) - print(string.format(" Data Size: %.2f %s", GetSizeDesc(image_size))) - - local attrib_list = ifile:GetAttributeList() - for a = 1, table.getn(attrib_list) do - if a == 1 then - print(" Attributes:") - end - - local attrib_data, attrib_data_type = ifile:GetAttribute(attrib_list[a]) - - if table.getn(attrib_data) == 1 then - print(string.format(" %s: %s", attrib_list[a], AttribData2Str(attrib_data, attrib_data_type))) - elseif attrib_data_type == im.BYTE and FindZero(attrib_data) then - attrib_data = ifile:GetAttribute(attrib_list[a], true) - print(string.format(" %s: %s", attrib_list[a], attrib_data)) - else - print(string.format(" %s: %s ...", attrib_list[a], AttribData2Str(attrib_data, attrib_data_type))) - end - end - end - - ifile:Close() -end - -function main(arg) - if (not arg or table.getn(arg) < 1) then - print("Invalid number of arguments.") - return nil - end - - PrintImageInfo(arg[1]) - return 1 -end - -main(arg) ---PrintImageInfo("lena.jpg") |