1 18 package org.apache.batik.ext.awt.image; 19 20 21 31 public class TableTransfer implements TransferFunction { 32 35 public byte [] lutData; 36 37 40 public int [] tableValues; 41 42 45 private int n; 46 47 51 public TableTransfer(int [] tableValues){ 52 this.tableValues = tableValues; 53 this.n = tableValues.length; 54 } 55 56 61 private void buildLutData(){ 62 lutData = new byte [256]; 63 int j; 64 float fi, r; 65 int ffi, cfi; 66 67 70 71 for (j=0; j<=255; j++){ 72 fi = j*(n-1)/255f; 73 ffi = (int)Math.floor(fi); 74 cfi = (ffi + 1)>(n-1)?(n-1):(ffi+1); 75 r = fi - ffi; 76 lutData[j] = (byte)((int)((tableValues[ffi] + r*(tableValues[cfi] - tableValues[ffi])))&0xff); 77 } 79 80 86 } 87 88 92 public byte [] getLookupTable(){ 93 buildLutData(); 94 return lutData; 95 } 96 } 97 | Popular Tags |