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

📄 rgbmatrixcolordecorator.java

📁 Novocode的 SWT 控件框架 丰富了MDI功能
💻 JAVA
字号:
/*******************************************************************************
 * Copyright (c) 2004 Stefan Zeiger and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.novocode.com/legal/epl-v10.html
 * 
 * Contributors:
 *     Stefan Zeiger (szeiger@novocode.com) - initial API and implementation
 *******************************************************************************/

package com.novocode.naf.color;


/**
 * A color decorator which makes a color warmer or colder.
 * 
 * @author Stefan Zeiger (szeiger@novocode.com)
 * @since Apr 26, 2004
 */

public class RGBMatrixColorDecorator implements IColorDecorator
{
  public static final IColorDecorator DECO_WARMER = new RGBMatrixColorDecorator(1.025, 0.0, 0.0, 0.0, 0.0, 1.025, 0.0, 0.0, 0.0, 0.0, 0.95, 0.0);
  public static final IColorDecorator DECO_COOLER = new RGBMatrixColorDecorator(0.975, 0.0, 0.0, 0.0, 0.0, 0.975, 0.0, 0.0, 0.0, 0.0, 1.05, 0.0);


  private double rr, rg, rb, rc, gr, gg, gb, gc, br, bg, bb, bc;


  public RGBMatrixColorDecorator(
    double rr, double rg, double rb, double rc,
    double gr, double gg, double gb, double gc,
    double br, double bg, double bb, double bc)
  {
    this.rr = rr;
    this.rg = rg;
    this.rb = rb;
    this.rc = rc;
    this.gr = gr;
    this.gg = gg;
    this.gb = gb;
    this.gc = gc;
    this.br = br;
    this.bg = bg;
    this.bb = bb;
    this.bc = bc;
  }


  public void applyTo(PreciseColor c)
  {
    c.convertToModel(PreciseColor.MODEL_RGB);
    double r = c.rgb[0] * rr + c.rgb[1] * rg + c.rgb[2] * rb + rc;
    double g = c.rgb[0] * gr + c.rgb[1] * gg + c.rgb[2] * gb + gc;
    double b = c.rgb[0] * br + c.rgb[1] * bg + c.rgb[2] * bb + bc;
    c.rgb[0] = Math.max(0, Math.min(1.0, r));
    c.rgb[1] = Math.max(0, Math.min(1.0, g));
    c.rgb[2] = Math.max(0, Math.min(1.0, b));
  }
}

⌨️ 快捷键说明

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