def main():
    imp = IJ.getFilePath("Select DCIMG file")
    if not imp:
        return
    root, ext = os.path.splitext(imp)
    if ext.lower() != '.dcimg':
        cFrame = PlugInFrame('ERR DLG')
        MessageDialog(cFrame, 'ERROR', 'Expected extension .dcimg')
        return

    #Lets start
    fID = open(imp, 'rb')

    hdr_bytes = read_header_bytes(fID)
    hdr = parse_header_bytes(fID, hdr_bytes)

    metadataStr = beginMetadata()
    for key, value in hdr.iteritems():
        metadataStr += addMetadataEntry(key, str(value))

    metadataStr += endMetadata()
    metadataDlg = HTMLDialog("DCIMG metadata", metadataStr, 0)
    size = metadataDlg.getSize()
    if size.width < 300:
        size.width = 300
    if size.height < 500:
        size.height = 500
    metadataDlg.setSize(size)

    finfo = FileInfo()
    finfo.fileName = imp
    #finfo.width = hdr['xsize_req']
    finfo.width = hdr['xsize']
    finfo.height = hdr['ysize']
    finfo.nImages = hdr['nframes']
    finfo.offset = 232
    finfo.fileType = hdr['bitdepth'] / 8 - 1  #Ugh
    finfo.intelByteOrder = 1
    #finfo.gapBetweenImages = int(hdr['bytes_per_img']*(1-float(hdr['xsize_req'])/float(hdr['xsize'])))
    finfo.gapBetweenImages = 0
    finfo.fileFormat = 1
    finfo.samplesPerPixel = 1
    finfo.displayRanges = None
    finfo.lutSize = 0
    finfo.whiteIsZero = 0
    vs = VirtualStack()
    finfo.virtualStack = vs
    FileInfoVirtualStack(finfo)
Beispiel #2
0
metadataStr += addMetadataEntry('fileType', str(fileType))
metadataStr += addMetadataEntry('gapBetweenImages', str(gap+64))
if(metadataInconsistency > 0):
  metadataStr += addMetadataEntry('Inconsistent METADATA', str(metadataInconsistency))
metadataStr += endMetadata()
metadataDlg = HTMLDialog("HIS parameters", metadataStr, 0)
size = metadataDlg.getSize()
if size.width < 300:
  size.width = 300
if size.height < 300:
  size.height = 300
metadataDlg.setSize(size)

finfo = FileInfo()
finfo.fileName = imp
finfo.width = width
finfo.height = height
finfo.nImages = frames
finfo.offset = offset+64
finfo.fileType = fileType-1
finfo.intelByteOrder = 1
finfo.gapBetweenImages = gap+64
finfo.fileFormat = 1
finfo.samplesPerPixel = 1
finfo.displayRanges = None
finfo.lutSize = 0
finfo.whiteIsZero = 0
vs = VirtualStack()
finfo.virtualStack = vs
FileInfoVirtualStack(finfo)