java怎么解析IMG格式的文件?

各位大神们,有谁能用Java解析.IMG文件,或者把它用Java转成图片格式,我是无知的小程序员,请求大家的帮助,谢谢!!!

这个先试下

https://blog.csdn.net/demaissb/article/details/55252998

不行的话找个能转换的软件,用java调cmd命令去调用软件转

首先非常感谢你的回答,两种方案均行不通,原因:

1..IMG为工业加密级文件,并非为图像格式,所以代码,转换软件识别不出来,导致转换失败。

2.调用python脚本处理转换为png是可行的。

3.项目为Java开发,所以考虑用Java代替。

python脚本为:

# coding: utf-8
import sys
import binascii
import cv2
import numpy as np


def img_switch(img_name):
    """
    这个是把IMG和HIS格式图像转化成可读形式文件的接口
    :param img_name: 要处理文件的名称
    :return: 可读图像的数据
    """

    try:
        with open(img_name, 'rb') as f:
            data = f.read()
    except:
        return 'error:文件名不存在'

    img_type = img_name[-3:]

    if 'img' == img_type or 'IMG' == img_type:
        # 图片宽度
        width = 1024
        # 图片高度
        height = 1024
    elif 'his' == img_type or 'HIS' == img_type:
        # 图片宽度
        width = 2176
        # 图片高度
        height = 1792
    else:
        img_data = cv2.imread(img_name, cv2.IMREAD_UNCHANGED)
        if img_data.dtype == np.uint16:
            img_type = 16
        elif img_data.dtype == np.uint8:
            img_type = 8
        if len(img_data.shape) == 3:
            img_data = img_data[:, :, 0]
        # img_shape = np.array(img_data.shape)
        # img_data = img_data.reshape((img_shape.prod(), ))
        #print('23424235423')
        img_data = np.concatenate(img_data, 0)
        return list(img_data), img_type
    # 首先是把二进制数据转化为16位

    hex_str = binascii.b2a_hex(data)

    # 接着选取图片对应的数据,是从len(hex_str)-4*width*height位往后的数据
    drift_size = len(hex_str) - 4 * width * height
    sel_hex = hex_str[drift_size:]
    sel_hex = str(sel_hex)[2: -1]
    # sel_hex = [sel_hex[i*4: (i+1)*4] for i in range(width*height)]
    # 将选出来的数据4位4位的分开
    sel_hex = [sel_hex[i * 4: (i + 1) * 4] for i in range(width * height)]
    # 把数据的高八位和低八位换位置
    sel_hex = [i[2:] + i[:2] for i in sel_hex]
    # print(str(sel_hex[0]))
    # 将选出来的4位16进制转化为10进制
    img_data = [int(i, 16) for i in sel_hex]
    # 之后将数据转化为(height, width, 1)的格式
    # img_data = [img_data[i * width: (i + 1) * width] for i in range(height)]
    # img_data = np.array(img_data)
    # img_data = img_data.reshape((height, width, 1))
    # 将图片简单换算成8位的格式,保存成jpg格式
    # img_data = img_data/255.
    # img_data = img_data.astype(np.uint16)
    return img_data, 16


if __name__ == '__main__':
	img_name = sys.argv[1]
	output_data, img_type = img_switch(img_name)
	output_data = [str(i) for i in output_data]
	print(str(img_type) + ',' + ','.join(output_data))

4.网友们有人会的话,还请帮助用Java解决下问题3,让后人学习学习。谢谢

坐等大佬回答