Class DicomImageBlackout
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,RootPaneContainer
,WindowConstants
- Direct Known Subclasses:
DicomCleaner.OurDicomImageBlackout
This class displays images and allows the user to black out burned-in annotation, and save the result.
A main method is provided, which can be supplied with a list of file names or pop up a file chooser dialog.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
protected class
class
A class of values for the Burned in Annotation action argument of theDicomImageBlackout()
constructor.protected class
protected class
protected class
class
A default status notification implementation, which just writes everything to stderr.protected class
protected class
protected class
protected class
protected class
class
An abstract class for the user of to supply a callback notification method, supplied as an argument of theDicomImageBlackout()
constructor.protected class
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.Type
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DicomImageBlackout.ApplyActionListener
protected JButton
protected JButton
protected JButton
protected JButton
protected int
protected boolean
protected boolean
protected JSlider
protected JPanel
protected String
protected int
protected boolean
protected String[]
protected SingleImagePanel
protected JLabel
protected AttributeList
protected Box
protected JPanel
protected DicomImageBlackout.NextActionListener
protected String
protected EventContext
protected com.pixelmed.display.DicomImageBlackout.OurFrameSelectionChangeListener
protected int
protected Vector
protected int
protected File
protected ResourceBundle
protected static String
protected DicomImageBlackout.SaveActionListener
protected SourceImage
protected boolean
protected boolean
protected JCheckBox
protected boolean
protected JCheckBox
Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabled
Fields inherited from class java.awt.Frame
ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, NORMAL
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
ConstructorsConstructorDescriptionDicomImageBlackout
(String[] dicomFileNames, DicomImageBlackout.StatusNotificationHandler snh, int burnedinflag) Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.DicomImageBlackout
(String title, String[] dicomFileNames, DicomImageBlackout.StatusNotificationHandler snh, int burnedinflag) Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
protected void
protected Dimension
changeDimensionToFitInMaximumAvailable
(Dimension useDimension, Dimension maxDimension, boolean onlySmaller) protected void
createCineSliderIfNecessary
(int min, int max, int value) void
void
dispose()
protected void
finalize()
protected double
getScaleFactorToFitInMaximumAvailable
(double useWidth, double useHeight, double maxWidth, double maxHeight) protected void
loadDicomFileOrDirectory
(File currentFile) Load the named DICOM file and display it in the image panel.protected void
loadDicomFileOrDirectory
(String dicomFileName) Load the named DICOM file and display it in the image panel.static void
The method to invoke the application.protected void
protected Dimension
reduceDimensionToFitInMaximumAvailable
(Dimension useDimension) protected void
protected void
updateDisplayedFileNumber
(int current, int total) Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
Methods inherited from class java.awt.Frame
addNotify, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, toBack, toFront
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, paintComponents, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, hasFocus, imageUpdate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, list, list, list, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.awt.MenuContainer
getFont
-
Field Details
-
resourceBundleName
-
resourceBundle
-
ourAETitle
-
dicomFileNames
-
currentFileName
-
currentFileNumber
protected int currentFileNumber -
mainPanel
-
multiPanel
-
imagePanel
-
list
-
sImg
-
changesWereMade
protected boolean changesWereMade -
usedjpegblockredaction
protected boolean usedjpegblockredaction -
deferredDecompression
protected boolean deferredDecompression -
redactedJPEGFile
-
previousRows
protected int previousRows -
previousColumns
protected int previousColumns -
previousPersistentDrawingShapes
-
cineSliderControlsPanel
-
cineSliderChangeListener
-
cineSlider
-
imagesRemainingLabel
-
ourEventContext
-
burnInOverlays
protected boolean burnInOverlays -
useZeroBlackoutValue
protected boolean useZeroBlackoutValue -
usePixelPaddingBlackoutValue
protected boolean usePixelPaddingBlackoutValue -
useZeroBlackoutValueCheckBox
-
usePixelPaddingBlackoutValueCheckBox
-
ourFrameSelectionChangeListener
protected com.pixelmed.display.DicomImageBlackout.OurFrameSelectionChangeListener ourFrameSelectionChangeListener -
burnedinflag
protected int burnedinflag -
statusNotificationHandler
-
applyActionListener
-
saveActionListener
-
nextActionListener
-
previousActionListener
-
blackoutApplyButton
-
blackoutSaveButton
-
blackoutNextButton
-
blackoutPreviousButton
-
-
Constructor Details
-
DicomImageBlackout
public DicomImageBlackout(String[] dicomFileNames, DicomImageBlackout.StatusNotificationHandler snh, int burnedinflag) Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.
Each file will be processed sequentially, with the edited pixel data overwriting the original file.
- Parameters:
dicomFileNames
- the list of file names to process, if null a file chooser dialog will be raisedsnh
- an instance ofStatusNotificationHandler
; if null, a default handler will be used that writes to stderrburnedinflag
- whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values ofBurnedInAnnotationFlagAction
-
DicomImageBlackout
public DicomImageBlackout(String title, String[] dicomFileNames, DicomImageBlackout.StatusNotificationHandler snh, int burnedinflag) Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.
Each file will be processed sequentially, with the edited pixel data overwriting the original file.
- Parameters:
title
- the string to use in the title bar of the window or null if use default for localedicomFileNames
- the list of file names to process, if null a file chooser dialog will be raisedsnh
- an instance ofStatusNotificationHandler
; if null, a default handler will be used that writes to stderrburnedinflag
- whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values ofBurnedInAnnotationFlagAction
-
-
Method Details
-
recordStateOfDrawingShapesForFileChange
protected void recordStateOfDrawingShapesForFileChange() -
createCineSliderIfNecessary
protected void createCineSliderIfNecessary(int min, int max, int value) - Parameters:
min
- minimum frame number, starting from 1max
- number of framesvalue
- frame number, starting from 1
-
updateDisplayedFileNumber
protected void updateDisplayedFileNumber(int current, int total) -
loadDicomFileOrDirectory
Load the named DICOM file and display it in the image panel.
- Parameters:
dicomFileName
-
-
loadDicomFileOrDirectory
Load the named DICOM file and display it in the image panel.
- Parameters:
currentFile
-
-
getScaleFactorToFitInMaximumAvailable
protected double getScaleFactorToFitInMaximumAvailable(double useWidth, double useHeight, double maxWidth, double maxHeight) -
changeDimensionToFitInMaximumAvailable
-
reduceDimensionToFitInMaximumAvailable
-
addSingleImagePanelToMultiPanelAndEstablishLayout
protected void addSingleImagePanelToMultiPanelAndEstablishLayout() -
addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout
protected void addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout() -
showUIComponents
protected void showUIComponents() -
buildUIComponents
protected void buildUIComponents() -
deconstruct
public void deconstruct() -
dispose
public void dispose() -
finalize
- Throws:
Throwable
-
main
The method to invoke the application.
- Parameters:
arg
- optionally, a list of files; if absent a file dialog is presented
-