示例#1
0
 public void drawVerticalString(String string, int x, int y) {
   // x and y here are the center of the string
   FontMetrics fm = cp.getFontMetrics();
   int ascent = fm.getAscent();
   int descent = fm.getDescent();
   int height = ascent + descent;
   int width = cp.getStringWidth(string);
   int[] mask = new int[width * height];
   for (int i = 0; i < width * height; i++) {
     mask[i] = 0xffffffff;
   }
   ColorProcessor cp2 = new ColorProcessor(width, height, mask);
   cp2.setAntialiasedText(antialias);
   cp2.setFont(cp.getFont());
   cp2.drawString(string, 0, ascent);
   ColorProcessor cp3 = (ColorProcessor) cp2.rotateLeft();
   mask = (int[]) cp3.getPixels();
   int newx = x - height / 2;
   int newy = y - width / 2;
   int[] pixels = (int[]) cp.getPixels();
   int owidth = cp.getWidth();
   int oheight = cp.getHeight();
   for (int i = 0; i < width; i++) {
     int b = newy + i;
     if (b >= 0 && b < oheight) {
       for (int j = 0; j < height; j++) {
         int a = newx + j;
         if (a >= 0 && a < owidth) {
           if (mask[j + i * height] != 0xffffffff) {
             pixels[a + owidth * b] = mask[j + i * height];
           }
         }
       }
     }
   }
 }
示例#2
0
 public void setAntiAliasedText(boolean antialias) {
   cp.setAntialiasedText(antialias);
   this.antialias = true;
 }