JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.awt.image
Ŭ·¡½º RGBImageFilter

java.lang.Object 
  |
  +--java.awt.image.ImageFilter 
        |
        +--java.awt.image.RGBImageFilter
¸ðµç ±¸Çö ÀÎÅÍÆäÀ̽º:
Cloneable , ImageConsumer
Á÷°èÀÇ ±âÁ¸ÀÇ ¼­ºê Ŭ·¡½º:
GrayFilter

public abstract class RGBImageFilter
extends ImageFilter

ÀÌ Å¬·¡½º´Â µðÆúÆ® RGB ColorModel À̹ÌÁöÀÇ Çȼ¿À» ¼öÁ¤ÇÏ´Â ImageFilter ¸¦ ¿ëÀÌÇÏ°Ô ÀÛ¼ºÇϱâ À§ÇÑ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ¶Ç, FilteredImageSource ¿Í Á¶ÇÕÇØ, ±âÁ¸ À̹ÌÁöÀÇ ÇÊÅÍ Ã³¸®¿¡ »ç¿ëµË´Ï´Ù. ÀÌ Å¬·¡½º´Â 1 °³ÀÇ ¸Þ¼Òµå¸¦ ÅëÇØ ¸ðµç Çȼ¿ µ¥ÀÌÅ͸¦ º¯È¯Çϱâ À§ÇÑ È£ÃâÀ» Á¦°øÇÏ´Â Ãß»ó Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ImageProducer ·Î »ç¿ëµÇ°í ÀÖ´Â ColorModel ¿¡ °ü°è¾øÀÌ, µðÆúÆ®ÀÇ RGB ColorModel ·Î Çȼ¿À» ÇÑ ¹øÀ¸·Î º¯È¯ÇÕ´Ï´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â À̹ÌÁö ÇÊÅ͸¦ ÀÛ¼ºÇϱâ À§Çؼ­ Á¤ÀÇÇÒ Çʿ䰡 ÀÖ´Â °ÍÀº filterRGB ¸Þ¼Òµå »ÓÀÔ´Ï´Ù. ÀÌÇÏ¿¡, À̹ÌÁöÀÇ Àû»ö ¼ººÐ°ú û»ö ¼ººÐÀ» ±³È¯ÇÏ´Â ÇÊÅÍ Á¤ÀÇÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

	class RedBlueSwapFilter extends RGBImageFilter {
	    public RedBlueSwapFilter() {
		// The filter's operation does not depend on the
		// pixel's location, so IndexColorModels can be
		// filtered directly.
		canFilterIndexColorModel = true;
	    }
	    public int filterRGB(int x, int y, int rgb) {
		return ((rgb & 0xff00ff00)
			| ((rgb & 0xff0000) >> 16)
			| ((rgb & 0xff) << 16));
	    }
	}

°ü·Ã Ç׸ñ:
FilteredImageSource , ImageFilter , ColorModel.getRGBdefault()

ÇʵåÀÇ °³¿ä
protected  boolean canFilterIndexColorModel
          ÀÌ boolean ÇüÀº IndexColorModel ¿ÀºêÁ§Æ®ÀÇ Ä®¶ó Å×ÀÌºí ¿£Æ®¸®¿¡ ´ëÇØ¼­, filterRGB ¸Þ¼ÒµåÀÇ Ä®¶ó ÇÊÅÍ Ã³¸®¸¦, Çȼ¿ ´ÜÀ§ÀÇ ÇÊÅÍ Ã³¸® ´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ ³ªÅ¸³À´Ï´Ù.
protected  ColorModel newmodel
          À¯Àú°¡ substituteColorModel ¸¦ È£ÃâÇßÀ» ¶§¿¡ origmodel ¸¦ ¿Å°Ü³õ´Â ColorModel ÀÔ´Ï´Ù.
protected  ColorModel origmodel
          À¯Àú°¡ substituteColorModel ¸¦ È£ÃâÇßÀ» ¶§¿¡ newmodel ·Î ¿Å°Ü³õÀ» ¼ö ÀÖ´Â ColorModel ÀÔ´Ï´Ù.
 
Ŭ·¡½º java.awt.image. ImageFilter ¿¡¼­ »ó¼Ó¹ÞÀº Çʵå
consumer
 
ÀÎÅÍÆäÀ̽º java.awt.image. ImageConsumer ¿¡¼­ »ó¼Ó¹ÞÀº Çʵå
COMPLETESCANLINES , IMAGEABORTED , IMAGEERROR , RANDOMPIXELORDER , SINGLEFRAME , SINGLEFRAMEDONE , SINGLEPASS , STATICIMAGEDONE , TOPDOWNLEFTRIGHT
 
»ý¼ºÀÚÀÇ °³¿ä
RGBImageFilter ()
           
 
¸Þ¼ÒµåÀÇ °³¿ä
 IndexColorModel filterIndexColorModel (IndexColorModel  icm)
          IndexColorModel ¿ÀºêÁ§Æ®¸¦ ÇÊÅÍ Ã³¸®ÇÕ´Ï´Ù.
abstract  int filterRGB (int x, int y, int rgb)
          ¼­ºê Ŭ·¡½º´Â µðÆúÆ®ÀÇ RGB ColorModel ÀÇ 1 °³ÀÇ ÀÔ·Â Çȼ¿À» 1 °³ÀÇ Ãâ·Â Çȼ¿·Î º¯È¯ÇÏ´Â ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
 void filterRGBPixels (int x, int y, int w, int h, int[] pixels, int off, int scansize)
          µðÆúÆ®ÀÇ RGB ColorModel ÀÇ Çȼ¿ ¹öÆÛ¸¦ ÇÊÅÍ Ã³¸®ÇÕ´Ï´Ù.
 void setColorModel (ColorModel  model)
          ColorModel °¡ IndexColorModel ·Î, ¼­ºê Ŭ·¡½º°¡ canFilterIndexColorModel Ç÷¡±×¸¦ true ·Î ¼³Á¤ÇßÀ» °æ¿ì´Â ¿øÀÇ ColorModel ¿ÀºêÁ§Æ®°¡ setPixels ¸Þ¼Òµå·Î ºÒ·Á °¡´Â °÷Àº ¾îµð¿¡¼­¶óµµ, ÇÊÅÍ Ã³¸®µÈ Ä®¶ó ¸ðµ¨¿¡ ¿Å°Ü³õ½À´Ï´Ù.
 void setPixels (int x, int y, int w, int h, ColorModel  model, byte[] pixels, int off, int scansize)
          ColorModel ¿ÀºêÁ§Æ®°¡, ¹ú½á º¯È¯µÈ ¿ÀºêÁ§Æ®¿Í °°Àº °æ¿ì, º¯È¯µÈ ColorModel ¸¦ »ç¿ëÇØ ´Ü¼øÇÏ°Ô Çȼ¿À» °Ç³×ÁÝ´Ï´Ù.
 void setPixels (int x, int y, int w, int h, ColorModel  model, int[] pixels, int off, int scansize)
          ColorModel ¿ÀºêÁ§Æ®°¡, ¹ú½á º¯È¯µÈ ¿ÀºêÁ§Æ®¿Í °°Àº °æ¿ì, º¯È¯µÈ ColorModel ¸¦ »ç¿ëÇØ ´Ü¼øÇÏ°Ô Çȼ¿À» °Ç³×ÁÝ´Ï´Ù.
 void substituteColorModel (ColorModel  oldcm, ColorModel  newcm)
          Ä¡È¯¿ëÀÇ 2 °³ÀÇ ColorModel ¿ÀºêÁ§Æ®¸¦ µî·ÏÇÕ´Ï´Ù.
 
Ŭ·¡½º java.awt.image. ImageFilter ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
clone , getFilterInstance , imageComplete , resendTopDownLeftRight , setDimensions , setHints , setProperties
 
Ŭ·¡½º java.lang. Object ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

ÇʵåÀÇ »ó¼¼

origmodel

protected ColorModel  origmodel
À¯Àú°¡ substituteColorModel ¸¦ È£ÃâÇßÀ» ¶§¿¡ newmodel ·Î ¿Å°Ü³õÀ» ¼ö ÀÖ´Â ColorModel ÀÔ´Ï´Ù.


newmodel

protected ColorModel  newmodel
À¯Àú°¡ substituteColorModel ¸¦ È£ÃâÇßÀ» ¶§¿¡ origmodel ¸¦ ¿Å°Ü³õ´Â ColorModel ÀÔ´Ï´Ù.


canFilterIndexColorModel

protected boolean canFilterIndexColorModel
ÀÌ boolean ÇüÀº IndexColorModel ¿ÀºêÁ§Æ®ÀÇ Ä®¶ó Å×ÀÌºí ¿£Æ®¸®¿¡ ´ëÇØ¼­, filterRGB ¸Þ¼ÒµåÀÇ Ä®¶ó ÇÊÅÍ Ã³¸®¸¦, Çȼ¿ ´ÜÀ§ÀÇ ÇÊÅÍ Ã³¸® ´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ ³ªÅ¸³À´Ï´Ù. filterRGB ¸Þ¼Òµå°¡, ÇÊÅÍ Ã³¸®¸¦ ½Ç½ÃÇÏ´Â Çȼ¿ÀÇ ÁÂÇ¥¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â °æ¿ì, ¼­ºê Ŭ·¡½º´Â ÀÌ º¯¼ö¸¦ constructor À¸·Î true ·Î ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

°ü·Ã Ç׸ñ:
substituteColorModel(java.awt.image.ColorModel, java.awt.image.ColorModel) , filterRGB(int, int, int) , IndexColorModel
»ý¼ºÀÚÀÇ »ó¼¼

RGBImageFilter

public RGBImageFilter()
¸Þ¼ÒµåÀÇ »ó¼¼

setColorModel

public void setColorModel(ColorModel  model)
ColorModel °¡ IndexColorModel ·Î, ¼­ºê Ŭ·¡½º°¡ canFilterIndexColorModel Ç÷¡±×¸¦ true ·Î ¼³Á¤ÇßÀ» °æ¿ì´Â ¿øÀÇ ColorModel ¿ÀºêÁ§Æ®°¡ setPixels ¸Þ¼Òµå·Î ºÒ·Á °¡´Â °÷Àº ¾îµð¿¡¼­¶óµµ, ÇÊÅÍ Ã³¸®µÈ Ä®¶ó ¸ðµ¨¿¡ ¿Å°Ü³õ½À´Ï´Ù. µÎ¾î ȯÀ» ÇÏÁö ¾Ê´Â °æ¿ì´Â ImageProducer °¡ »ç¿ëÇÏ´Â µðÆúÆ®ÀÇ ColorModel ¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, µðÆúÆ®ÀÇ RGB ColorModel ¸¦ ´ë½Å¿¡ ÁöÁ¤ÇÕ´Ï´Ù.

ÁÖ: ÀÌ ¸Þ¼Òµå´Â ÇÊÅÍ Ã³¸®ÀÇ ´ë»óÀÌ µÇ´Â Çȼ¿·Î ±¸¼ºµÇ´Â Image ÀÇ ImageProducer ¿¡ ÀÇÇØ ºÒ·Á °¡´Â °ÍÀ» »óÁ¤ÇØ ±¸ÇöµÇ°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ç¿ëÇØ À̹ÌÁöÀÇ Çȼ¿À» ÇÊÅÍ Ã³¸®ÇÏ´Â °³¹ßÀÚ´Â ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇÏÁö ¸»¾Æ ÁÖ¼¼¿ä. ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇϸé(ÀÚ), ÇÊÅÍ Á¶ÀÛÀ» ¹æÇØÇÒ ¼ö ÀÖÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ImageConsumer ³»ÀÇ setColorModel
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ImageFilter ³»ÀÇ setColorModel
°ü·Ã Ç׸ñ:
ImageConsumer , ColorModel.getRGBdefault()

substituteColorModel

public void substituteColorModel(ColorModel  oldcm,
                                 ColorModel  newcm)
ġȯ¿ëÀÇ 2 °³ÀÇ ColorModel ¿ÀºêÁ§Æ®¸¦ µî·ÏÇÕ´Ï´Ù. setPixels ¸Þ¼Òµå·Î oldcm °¡ °ËÃâµÇ¾úÀ» °æ¿ì´Â newcm ·Î ¿Å°ÜÁ® Çȼ¿Àº »õ·Î¿î ColorModel ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇØ ±×´ë·Î °Ç³×¹Þ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
oldcm - ó¸®ÁßÀ¸·Î ¿Å°ÜÁö´Â ColorModel ¿ÀºêÁ§Æ®
newcm - ó¸®Áß¿¡ oldcm ¸¦ ¿Å°Ü³õ´Â ColorModel ¿ÀºêÁ§Æ®

filterIndexColorModel

public IndexColorModel  filterIndexColorModel(IndexColorModel  icm)
IndexColorModel ¿ÀºêÁ§Æ®¸¦ ÇÊÅÍ Ã³¸®ÇÕ´Ï´Ù. RGBImageFilter ¼­ºê Ŭ·¡½º°¡ Á¦°øÇÏ´Â filterRGB ±â´É¿¡ ÀÇÇØ, ¿ÀºêÁ§Æ®ÀÇ Ä®¶ó Å×À̺íÀÇ °¢ ¿£Æ®¸®¸¦ ó¸®ÇÕ´Ï´Ù. -1 ÀÇ ÁÂÇ¥´Â Ä®¶ó Å×ÀÌºí ¿£Æ®¸®°¡ ÇÊÅÍ Ã³¸®µÇ°í ÀÖ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù¸¸, À̰ÍÀº ½ÇÁ¦ÀÇ Çȼ¿Ä¡°¡ ¾Æ´Õ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
icm - ÇÊÅÍ Ã³¸®µÇ´Â IndexColorModel ¿ÀºêÁ§Æ®
¹Ýȯ°ª:
ÇÊÅÍ Ã³¸®µÈ »öÀ» ³ªÅ¸³»´Â »õ·Î¿î IndexColorModel

filterRGBPixels

public void filterRGBPixels(int x,
                            int y,
                            int w,
                            int h,
                            int[] pixels,
                            int off,
                            int scansize)
µðÆúÆ®ÀÇ RGB ColorModel ÀÇ Çȼ¿ ¹öÆÛ¸¦ ÇÊÅÍ Ã³¸®ÇÕ´Ï´Ù. filterRGB ¸Þ¼Òµå·Î 1 °³¾¿ °Ç³×¹Þ¾Æ 󸮵˴ϴÙ.

ÆÄ¶ó¹ÌÅÍ:
w - Çȼ¿ areaÀÇ Æø
h - Çȼ¿ areaÀÇ ³ôÀÌ
pixels - Çȼ¿ÀÇ ¹è¿­
off - pixels ¹è¿­ÀÇ ¿ÀÇÁ¼Â(offset)
scansize - ¹è¿­»ó¿¡¼­ÀÇ Çȼ¿ÀÇ 1 ¿­ÀÇ Å©±â
°ü·Ã Ç׸ñ:
ColorModel.getRGBdefault() , filterRGB(int, int, int)

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      ColorModel  model,
                      byte[] pixels,
                      int off,
                      int scansize)
ColorModel ¿ÀºêÁ§Æ®°¡, ¹ú½á º¯È¯µÈ ¿ÀºêÁ§Æ®¿Í °°Àº °æ¿ì, º¯È¯µÈ ColorModel ¸¦ »ç¿ëÇØ ´Ü¼øÇÏ°Ô Çȼ¿À» °Ç³×ÁÝ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, byte Çȼ¿ÀÇ ¹öÆÛ¸¦ µðÆúÆ®ÀÇ RGB ColorModel ·Î º¯È¯ÇØ, º¯È¯µÈ ¹öÆÛ¸¦ filterRGBPixels ¸Þ¼Òµå¿¡ °Ç³×ÁÖ¾î, 1 kr¾¿ º¯È¯ÇÕ´Ï´Ù.

ÁÖ: ÀÌ ¸Þ¼Òµå´Â ÇÊÅÍ Ã³¸®ÀÇ ´ë»óÀÌ µÇ´Â Çȼ¿·Î ±¸¼ºµÇ´Â Image ÀÇ ImageProducer ¿¡ ÀÇÇØ ºÒ·Á °¡´Â °ÍÀ» »óÁ¤ÇØ ±¸ÇöµÇ°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ç¿ëÇØ À̹ÌÁöÀÇ Çȼ¿À» ÇÊÅÍ Ã³¸®ÇÏ´Â °³¹ßÀÚ´Â ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇÏÁö ¸»¾Æ ÁÖ¼¼¿ä. ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇϸé(ÀÚ), ÇÊÅÍ Á¶ÀÛÀ» ¹æÇØÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ImageConsumer ³»ÀÇ setPixels
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ImageFilter ³»ÀÇ setPixels
°ü·Ã Ç׸ñ:
ColorModel.getRGBdefault() , filterRGBPixels(int, int, int, int, int[], int, int)

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      ColorModel  model,
                      int[] pixels,
                      int off,
                      int scansize)
ColorModel ¿ÀºêÁ§Æ®°¡, ¹ú½á º¯È¯µÈ ¿ÀºêÁ§Æ®¿Í °°Àº °æ¿ì, º¯È¯µÈ ColorModel ¸¦ »ç¿ëÇØ ´Ü¼øÇÏ°Ô Çȼ¿À» °Ç³×ÁÝ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, int Çȼ¿ÀÇ ¹öÆÛ¸¦ µðÆúÆ®ÀÇ RGB ColorModel ·Î º¯È¯ÇØ, º¯È¯µÈ ¹öÆÛ¸¦ filterRGBPixels ¸Þ¼Òµå¿¡ °Ç³×ÁÖ¾î, 1 kr¾¿ º¯È¯ÇÕ´Ï´Ù. int Çȼ¿ÀÇ ¹öÆÛ¸¦ µðÆúÆ®ÀÇ RGB ColorModel ·Î º¯È¯ÇØ, º¯È¯µÈ ¹öÆÛ¸¦ filterRGBPixels ¸Þ¼Òµå¿¡ °Ç³×ÁÝ´Ï´Ù.

ÁÖ: ÀÌ ¸Þ¼Òµå´Â ÇÊÅÍ Ã³¸®ÀÇ ´ë»óÀÌ µÇ´Â Çȼ¿·Î ±¸¼ºµÇ´Â Image ÀÇ ImageProducer ¿¡ ÀÇÇØ ºÒ·Á °¡´Â °ÍÀ» »óÁ¤ÇØ ±¸ÇöµÇ°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ç¿ëÇØ À̹ÌÁöÀÇ Çȼ¿À» ÇÊÅÍ Ã³¸®ÇÏ´Â °³¹ßÀÚ´Â ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇÏÁö ¸»¾Æ ÁÖ¼¼¿ä. ÀÌ ¸Þ¼Òµå¸¦ Á÷Á¢ È£ÃâÇϸé(ÀÚ), ÇÊÅÍ Á¶ÀÛÀ» ¹æÇØÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ImageConsumer ³»ÀÇ setPixels
¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º ImageFilter ³»ÀÇ setPixels
°ü·Ã Ç׸ñ:
ColorModel.getRGBdefault() , filterRGBPixels(int, int, int, int, int[], int, int)

filterRGB

public abstract int filterRGB(int x,
                              int y,
                              int rgb)
¼­ºê Ŭ·¡½º´Â µðÆúÆ®ÀÇ RGB ColorModel ÀÇ 1 °³ÀÇ ÀÔ·Â Çȼ¿À» 1 °³ÀÇ Ãâ·Â Çȼ¿·Î º¯È¯ÇÏ´Â ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
rgb - µðÆúÆ® RGB Ä®¶ó ¸ðµ¨ÀÇ Á¤¼öÇü Çȼ¿ Ç¥Çö
¹Ýȯ°ª:
µðÆúÆ® RGB Ä®¶ó ¸ðµ¨ÀÇ ÇÊÅÍ Ã³¸®µÈ Çȼ¿
°ü·Ã Ç׸ñ:
ColorModel.getRGBdefault() , filterRGBPixels(int, int, int, int, int[], int, int)

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.