⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directcolormodel.java

📁 kaffe是一个java虚拟机的源代码。里面包含了一些java例程和标准的java包。
💻 JAVA
字号:
/** * DirectColorModel - the ColorModel that corresponds to the X TrueColor visual * (native pixel values have RGB bitfields)  * * Copyright (c) 1998, 1999 *      Transvirtual Technologies, Inc.  All rights reserved. * * See the file "license.terms" for information on usage and redistribution * of this file. * * @author P. Mehlitz */package java.awt.image;public class DirectColorModel  extends ColorModel{	int rmask;	int gmask;	int bmask;	int amask;	int rshift;	int bshift;	int gshift;	int ashift;	int rmax;	int gmax;	int bmax;	int amax;public DirectColorModel( int bits, int rmask, int gmask, int bmask) {	this( bits, rmask, gmask, bmask, 0);}public DirectColorModel( int bits, int rmask, int gmask, int bmask, int amask) {	super( bits);	this.rmask = rmask;	this.gmask = gmask;	this.bmask = bmask;	this.amask = amask;		if ( rmask != 0 ) {		rshift = getShift( rmask);		rmax = (rshift > 0) ? (0xffffffff & rmask) >> rshift :		                      (0xffffffff & rmask) << -rshift;	}	if ( gmask != 0 ) {		gshift = getShift( gmask);		gmax = (gshift > 0) ? (0xffffffff & gmask) >> gshift :		                      (0xffffffff & gmask) << -gshift;	}	if ( bshift != 0 ) {				bshift = getShift( bmask);		bmax = (bshift > 0) ? (0xffffffff & bmask) >> bshift :		                      (0xffffffff & bmask) << -bshift;	}	if ( amask != 0 ){		ashift = getShift( amask);		amax =  (ashift > 0) ? (0xffffffff & amask) >> ashift :		                       (0xffffffff & amask) << -ashift;	}}final public int getAlpha( int pixel) {	if ( amask == 0 )		return 0;	return ((ashift > 0) ? ((pixel&amask)>>ashift) : ((pixel&amask)<< -ashift)) * 255 / amax;}final public int getAlphaMask() {	return amask;}final public int getBlue( int pixel) {	if ( bmask == 0 )		return 0;	return ((bshift > 0) ? ((pixel&bmask)>>bshift) : ((pixel&bmask)<< -bshift)) * 255 / bmax;}final public int getBlueMask() {	return bmask;}final public int getGreen( int pixel) {	if ( gmask == 0 )		return 0;	return ((gshift > 0) ? ((pixel&gmask)>>gshift) : ((pixel&gmask)<< -gshift)) * 255 / gmax;}final public int getGreenMask() {	return gmask;}final public int getRGB( int pixel) {	return ((getAlpha(pixel) << 24) |	        (getRed(pixel)   << 16) |	        (getGreen(pixel) <<  8) |	        getBlue(pixel)); }final public int getRed( int pixel) {	if ( rmask == 0 )		return 0;		return ((rshift > 0) ? ((pixel&rmask)>>rshift) : ((pixel&rmask)<< -rshift)) * 255 / rmax;}final public int getRedMask() {	return rmask;}int getShift ( int mask ) {	int i, j;		for ( i=0; (mask & 1) == 0; i++ )		mask >>= 1;	for ( j=0; (mask & 1) != 0; j++ )		mask >>= 1;	return (i + (j - 8));}public String toString() {	return "DirectColorModel: rmask=" + Integer.toHexString(getRedMask())		+ " gmask=" + Integer.toHexString(getGreenMask())		+ " bmask=" + Integer.toHexString(getBlueMask())		+ " amask=" + Integer.toHexString(getAlphaMask());}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -