net.wasamon.mjlib.ui
クラス CustomImage

java.lang.Object
  上位を拡張 java.awt.Component
      上位を拡張 java.awt.Container
          上位を拡張 javax.swing.JComponent
              上位を拡張 javax.swing.JScrollPane
                  上位を拡張 net.wasamon.mjlib.ui.CustomImage
すべての実装されたインタフェース:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.ScrollPaneConstants

public class CustomImage
extends javax.swing.JScrollPane

画像を表示するための基本クラス

バージョン:
$Id: CustomImage.java,v 1.1 2004/08/10 06:51:09 miyo Exp $
作成者:
Takefumi MIYOSHI
関連項目:
直列化された形式

入れ子のクラスの概要
 class CustomImage.ColorObj
          色情報格納用の構造体(クラス)
 
クラス javax.swing.JScrollPane から継承された入れ子のクラス/インタフェース
javax.swing.JScrollPane.AccessibleJScrollPane, javax.swing.JScrollPane.ScrollBar
 
クラス javax.swing.JComponent から継承された入れ子のクラス/インタフェース
javax.swing.JComponent.AccessibleJComponent
 
クラス java.awt.Container から継承された入れ子のクラス/インタフェース
java.awt.Container.AccessibleAWTContainer
 
クラス java.awt.Component から継承された入れ子のクラス/インタフェース
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
フィールドの概要
private  java.awt.BorderLayout borderLayout1
           
static int BOTTOM
           
private  boolean center
           
static int CENTER
           
static int FREE_PLACE
          img1にimg2を合成(サイズは同一であること) //cで透明にする色を、tpで合成の強さを指定 private Image mixImage(Image img1,Image img2,Color c,int tp){ if (img1 == null || img2 == null) return null; int p1,p2,red1,red2,green1,green2,blue1,blue2; int w = img1.getWidth(null); int h = img1.getHeight(null); int[] pix1 = new int[w*h]; PixelGrabber pg = new PixelGrabber(img1,0,0,w,h,pix1,0,w); try{ pg.grabPixels(); } catch(InterruptedException ex){ ; } int[] pix2 = new int[w*h]; pg = new PixelGrabber(img2,0,0,w,h,pix2,0,w); try{ pg.grabPixels(); } catch(InterruptedException ex){ ; } for (int i = 0;i < w*h;i++){ if (pix2[i] !
private  javax.swing.ImageIcon icon
           
private  java.awt.Image image
           
private  javax.swing.JPanel jPanel1
           
private  boolean jpeg_hq
           
static int LEFT
           
static int LEFT_BOTTOM
           
static int LEFT_TOP
           
private  int maximage
           
static int REVERSE_LEFT_RIGHT
           
static int REVERSE_TOP_BOTTOM
           
static int RIGHT
           
static int RIGHT_BOTTOM
           
static int RIGHT_TOP
           
private  java.awt.Dimension size
           
private  boolean stretch
           
private  boolean stretch_fast
           
private  int sumcolors
           
static int TOP
           
static int TURN_LEFT_90DEGREE
           
static int TURN_RIGHT_90DEGREE
           
private  java.util.Vector v
           
private  javax.swing.JLabel viewLabel
           
 
クラス javax.swing.JScrollPane から継承されたフィールド
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
 
クラス javax.swing.JComponent から継承されたフィールド
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
クラス java.awt.Component から継承されたフィールド
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
インタフェース javax.swing.ScrollPaneConstants から継承されたフィールド
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
インタフェース java.awt.image.ImageObserver から継承されたフィールド
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
コンストラクタの概要
CustomImage()
          コンストラクタ
CustomImage(int max)
          コンストラクタ2
 
メソッドの概要
private  CustomImage.ColorObj binTree(CustomImage.ColorObj obj, int c)
          二分探索木による色情報格納
 int countColors()
          色数カウント
private  java.awt.Image doStretch(java.awt.Image image, java.awt.Dimension dim)
          アスペクト比を変えずに、画像を縮小
 int getImageCount()
          現在保持している画像の枚数をゲット
 int getImageHeight()
          画像の縦ドット数をゲット
 int getImageWidth()
          画像の横ドット数をゲット
 java.awt.Image getNowImage()
          現在、保持しているイメージのゲット
 int[] getNowPixels()
          現在のイメージを配列でゲット
private  int getRGBOne(int[] pix, int x, int y, int w, int h, int rgb)
          (x,y)地点の指定された色情報を返す
 boolean isCenter()
          centerプロパティのゲット
 boolean isJpegHQ()
          jpeg_hqプロパティのゲット
 boolean isStretch()
          stretchプロパティのゲット
 boolean isStretchFast()
          stretch_fastプロパティのゲット
private  void jbInit()
          コンポーネントの初期化
private  java.awt.Image mixImage2(java.awt.Image img1, java.awt.Image img2, java.awt.Color c, int tp)
          img1にimg2を合成(サイズは同一であること)<影付け専用メソッド>
private  void nowPaint()
          画像表示メイン処理
 void openFile(java.lang.String filename)
          ファイルを開く
 void paintString(int def, int xm, int ym, java.awt.Font f, java.awt.Color c, java.lang.String s, int sh)
          画像に文字列を描画
 void reverseImage(int dir)
          画像反転
 void saveJpegFile(java.lang.String filename)
          イメージをJPEG形式で保存
 void setBeforeImage()
          一つ前のイメージに戻す
 void setCenter(boolean ct)
          centerプロパティのセット
 void setJpegHQ(boolean hq)
          jpeg_hqプロパティのセット
 void setNewImage(java.awt.Image newimage)
          新たなイメージのセット
 void setNewPixels(int[] pixels, int w, int h)
          配列から新たなイメージをセット
 void setStretch(boolean st)
          stretchプロパティのセット
 void setStretchFast(boolean sf)
          stretch_fastプロパティのセット
(package private)  void this_componentResized(java.awt.event.ComponentEvent e)
          縮小時、表示領域のサイズが変更された際、画像を表示しなおす
 void turnImage(int degree)
          画像回転
 
クラス javax.swing.JScrollPane から継承されたメソッド
createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled, updateUI
 
クラス javax.swing.JComponent から継承されたメソッド
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
クラス java.awt.Container から継承されたメソッド
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
クラス java.awt.Component から継承されたメソッド
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

jPanel1

private javax.swing.JPanel jPanel1

borderLayout1

private java.awt.BorderLayout borderLayout1

icon

private javax.swing.ImageIcon icon

image

private java.awt.Image image

size

private java.awt.Dimension size

viewLabel

private javax.swing.JLabel viewLabel

stretch

private boolean stretch

center

private boolean center

jpeg_hq

private boolean jpeg_hq

stretch_fast

private boolean stretch_fast

sumcolors

private int sumcolors

v

private java.util.Vector v

maximage

private int maximage

FREE_PLACE

public static final int FREE_PLACE
img1にimg2を合成(サイズは同一であること) //cで透明にする色を、tpで合成の強さを指定 private Image mixImage(Image img1,Image img2,Color c,int tp){ if (img1 == null || img2 == null) return null; int p1,p2,red1,red2,green1,green2,blue1,blue2; int w = img1.getWidth(null); int h = img1.getHeight(null); int[] pix1 = new int[w*h]; PixelGrabber pg = new PixelGrabber(img1,0,0,w,h,pix1,0,w); try{ pg.grabPixels(); } catch(InterruptedException ex){ ; } int[] pix2 = new int[w*h]; pg = new PixelGrabber(img2,0,0,w,h,pix2,0,w); try{ pg.grabPixels(); } catch(InterruptedException ex){ ; } for (int i = 0;i < w*h;i++){ if (pix2[i] != c.getRGB()){ //透明色でなければ合成 p1 = pix1[i]; red1 = (0xff & (p1 >> 16)); green1 = (0xff & (p1 >> 8)); blue1 = (0xff & p1); p2 = pix2[i]; red2 = (0xff & (p2 >> 16)); green2 = (0xff & (p2 >> 8)); blue2 = (0xff & p2); red1 = (red1 * tp + red2 * (255 - tp)) >> 8; green1 = (green1 * tp + green2 * (255 - tp)) >> 8; blue1 = (blue1 * tp + blue2 * (255 - tp)) >> 8; pix1[i] = (0xff000000 | red1 << 16 | green1 << 8 | blue1); } } return createImage(new MemoryImageSource(w,h,pix1,0,w)); }

関連項目:
定数フィールド値

LEFT_TOP

public static final int LEFT_TOP
関連項目:
定数フィールド値

TOP

public static final int TOP
関連項目:
定数フィールド値

RIGHT_TOP

public static final int RIGHT_TOP
関連項目:
定数フィールド値

LEFT

public static final int LEFT
関連項目:
定数フィールド値

CENTER

public static final int CENTER
関連項目:
定数フィールド値

RIGHT

public static final int RIGHT
関連項目:
定数フィールド値

LEFT_BOTTOM

public static final int LEFT_BOTTOM
関連項目:
定数フィールド値

BOTTOM

public static final int BOTTOM
関連項目:
定数フィールド値

RIGHT_BOTTOM

public static final int RIGHT_BOTTOM
関連項目:
定数フィールド値

TURN_RIGHT_90DEGREE

public static final int TURN_RIGHT_90DEGREE
関連項目:
定数フィールド値

TURN_LEFT_90DEGREE

public static final int TURN_LEFT_90DEGREE
関連項目:
定数フィールド値

REVERSE_LEFT_RIGHT

public static final int REVERSE_LEFT_RIGHT
関連項目:
定数フィールド値

REVERSE_TOP_BOTTOM

public static final int REVERSE_TOP_BOTTOM
関連項目:
定数フィールド値
コンストラクタの詳細

CustomImage

public CustomImage()
コンストラクタ


CustomImage

public CustomImage(int max)
コンストラクタ2

メソッドの詳細

jbInit

private void jbInit()
             throws java.lang.Exception
コンポーネントの初期化

例外:
java.lang.Exception

this_componentResized

void this_componentResized(java.awt.event.ComponentEvent e)
縮小時、表示領域のサイズが変更された際、画像を表示しなおす


setStretch

public void setStretch(boolean st)
stretchプロパティのセット


isStretch

public boolean isStretch()
stretchプロパティのゲット


setCenter

public void setCenter(boolean ct)
centerプロパティのセット


isCenter

public boolean isCenter()
centerプロパティのゲット


setJpegHQ

public void setJpegHQ(boolean hq)
jpeg_hqプロパティのセット


isJpegHQ

public boolean isJpegHQ()
jpeg_hqプロパティのゲット


setStretchFast

public void setStretchFast(boolean sf)
stretch_fastプロパティのセット


isStretchFast

public boolean isStretchFast()
stretch_fastプロパティのゲット


setNewImage

public void setNewImage(java.awt.Image newimage)
新たなイメージのセット


getNowImage

public java.awt.Image getNowImage()
現在、保持しているイメージのゲット


setNewPixels

public void setNewPixels(int[] pixels,
                         int w,
                         int h)
配列から新たなイメージをセット


getNowPixels

public int[] getNowPixels()
現在のイメージを配列でゲット


setBeforeImage

public void setBeforeImage()
一つ前のイメージに戻す


getImageCount

public int getImageCount()
現在保持している画像の枚数をゲット


getImageWidth

public int getImageWidth()
画像の横ドット数をゲット


getImageHeight

public int getImageHeight()
画像の縦ドット数をゲット


openFile

public void openFile(java.lang.String filename)
ファイルを開く


nowPaint

private void nowPaint()
画像表示メイン処理


doStretch

private java.awt.Image doStretch(java.awt.Image image,
                                 java.awt.Dimension dim)
アスペクト比を変えずに、画像を縮小


saveJpegFile

public void saveJpegFile(java.lang.String filename)
イメージをJPEG形式で保存


countColors

public int countColors()
色数カウント


binTree

private CustomImage.ColorObj binTree(CustomImage.ColorObj obj,
                                     int c)
二分探索木による色情報格納


paintString

public void paintString(int def,
                        int xm,
                        int ym,
                        java.awt.Font f,
                        java.awt.Color c,
                        java.lang.String s,
                        int sh)
画像に文字列を描画


mixImage2

private java.awt.Image mixImage2(java.awt.Image img1,
                                 java.awt.Image img2,
                                 java.awt.Color c,
                                 int tp)
img1にimg2を合成(サイズは同一であること)<影付け専用メソッド>


getRGBOne

private int getRGBOne(int[] pix,
                      int x,
                      int y,
                      int w,
                      int h,
                      int rgb)
(x,y)地点の指定された色情報を返す


turnImage

public void turnImage(int degree)
画像回転


reverseImage

public void reverseImage(int dir)
画像反転