Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
Tools.java
1 package ij.util;
2 import java.awt.Color;
3 
5  public class Tools {
7  public static final char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
8 
10  public static String c2hex(Color c) {
11  int i = c.getRGB();
12  char[] buf7 = new char[7];
13  buf7[0] = '#';
14  for (int pos=6; pos>=1; pos--) {
15  buf7[pos] = hexDigits[i&0xf];
16  i >>>= 4;
17  }
18  return new String(buf7);
19  }
20 
22  public static String f2hex(float f) {
23  int i = Float.floatToIntBits(f);
24  char[] buf9 = new char[9];
25  buf9[0] = '#';
26  for (int pos=8; pos>=1; pos--) {
27  buf9[pos] = hexDigits[i&0xf];
28  i >>>= 4;
29  }
30  return new String(buf9);
31  }
32 
33  public static double[] getMinMax(double[] a) {
34  double min = Double.MAX_VALUE;
35  double max = -Double.MAX_VALUE;
36  double value;
37  for (int i=0; i<a.length; i++) {
38  value = a[i];
39  if (value<min)
40  min = value;
41  if (value>max)
42  max = value;
43  }
44  double[] minAndMax = new double[2];
45  minAndMax[0] = min;
46  minAndMax[1] = max;
47  return minAndMax;
48  }
49 
50  public static double[] getMinMax(float[] a) {
51  double min = Double.MAX_VALUE;
52  double max = -Double.MAX_VALUE;
53  double value;
54  for (int i=0; i<a.length; i++) {
55  value = a[i];
56  if (value<min)
57  min = value;
58  if (value>max)
59  max = value;
60  }
61  double[] minAndMax = new double[2];
62  minAndMax[0] = min;
63  minAndMax[1] = max;
64  return minAndMax;
65  }
66 
68  public static double[] toDouble(float[] a) {
69  int len = a.length;
70  double[] d = new double[len];
71  for (int i=0; i<len; i++)
72  d[i] = a[i];
73  return d;
74  }
75 
77  public static float[] toFloat(double[] a) {
78  int len = a.length;
79  float[] f = new float[len];
80  for (int i=0; i<len; i++)
81  f[i] = (float)a[i];
82  return f;
83  }
84 
86  public static String fixNewLines(String s) {
87  char[] chars = s.toCharArray();
88  for (int i=0; i<chars.length; i++)
89  {if (chars[i]=='\r') chars[i] = '\n';}
90  return new String(chars);
91  }
92 
103  public static double parseDouble(String s, double defaultValue) {
104  try {
105  Double d = new Double(s);
106  defaultValue = d.doubleValue();
107  } catch (NumberFormatException e) {}
108  return defaultValue;
109  }
110 
119  public static double parseDouble(String s) {
120  return parseDouble(s, Double.NaN);
121  }
122 
124  public static int getDecimalPlaces(double n1, double n2) {
125  if (Math.round(n1)==n1 && Math.round(n2)==n2)
126  return 0;
127  else {
128  n1 = Math.abs(n1);
129  n2 = Math.abs(n2);
130  double n = n1<n2&&n1>0.0?n1:n2;
131  double diff = Math.abs(n2-n1);
132  if (diff>0.0 && diff<n) n = diff;
133  int digits = 2;
134  if (n<100.0) digits = 3;
135  if (n<0.1) digits = 4;
136  if (n<0.01) digits = 5;
137  if (n<0.001) digits = 6;
138  if (n<0.0001) digits = 7;
139  return digits;
140  }
141  }
142 
143 }