Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 1999-2101 Alibaba Group.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.alibaba.simpleimage.render;
 
 import java.awt.Color;
 import java.awt.Font;
 
 
类CenterDrawTextItem.java的实现描述:TODO 类实现描述

Author(s):
wendell 2011-3-28 下午02:03:40
 
 public class FixDrawTextItem extends DrawTextItem {
 
     static final Color FONT_COLOR                 = new Color(255, 255, 255, 115);
     static final Color FONT_SHADOW_COLOR          = new Color(170, 170, 170, 77);
     static final Font  FONT                       = FontManager.getFont("方正黑体");
     static final float DEFAULT_TEXT_WIDTH_PERCENT = 0.85F;
 
     public enum Position {
         CENTER, TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT
     }
 
     protected float    textWidthPercent;
     protected Position position;
    
    

Parameters:
text
 
     public FixDrawTextItem(String text){
         super(text);
         this. = .;
     }

    

Parameters:
text
fontColor
fontShadowColor
defaultFont
minFontSize
 
     public FixDrawTextItem(String textPosition positionfloat textWidthPercent){
         super(text);
         this. = position;
         this. = textWidthPercent;
     }

    

Parameters:
text
fontColor
fontShadowColor
font
minFontSize
 
     public FixDrawTextItem(String textColor fontColorColor fontShadowColorFont fontint minFontSize,
                            Position positionfloat textWidthPercent){
         super(textfontColorfontShadowColorfontminFontSize);
         this. = position;
         this. = textWidthPercent;
     }
 
     /*
      * (non-Javadoc)
      * @see com.alibaba.simpleimage.render.DrawTextItem#drawText(java.awt.Graphics2D, int, int)
      */
     @Override
     public void drawText(Graphics2D graphicsint widthint height) {
         if(StringUtils.isBlank()) {
             return ;
         }
         
         int x = 0, y = 0;
         int fontsize = 1;
         if ( == .) {
             // 计算水印文字总长度
             int textLength = (int) (width * );
             // 计算水印字体大小
             fontsize = textLength / .length();
             // 太小了.....不显示
            if (fontsize < ) {
                return;
            }
            float fsize = (float)fontsize;
            Font font = .deriveFont(fsize);
            graphics.setFont(font);
            FontRenderContext context = graphics.getFontRenderContext();
            int sw = (intfont.getStringBounds(context).getWidth();
            // 计算字体的坐标
            x = (width - sw) / 2;
            y = height / 2 + fontsize / 2;
        } else if ( == .) {
            fontsize = ((int)(width * )) / .length();
            if (fontsize < ) {
                return;
            }
            float fsize = (float)fontsize;
            Font font = .deriveFont(fsize);
            graphics.setFont(font);
            x = fontsize;
            y = fontsize * 2;
        } else if ( == .) {
            fontsize = ((int)(width * )) / .length();
            if (fontsize < ) {
                return;
            }
            float fsize = (float)fontsize;
            Font font = .deriveFont(fsize);
            graphics.setFont(font);
            FontRenderContext context = graphics.getFontRenderContext();
            int sw = (intfont.getStringBounds(context).getWidth();
            x = width - sw - fontsize;
            y = fontsize * 2;
        } else if ( == .) {
            fontsize = ((int)(width * )) / .length();
            if (fontsize < ) {
                return;
            }
            float fsize = (float)fontsize;
            Font font = .deriveFont(fsize);
            graphics.setFont(font);
            x = fontsize / 2;
            y = height - fontsize;
        } else if ( == .) {
            fontsize = ((int)(width * )) / .length();
            if (fontsize < ) {
                return;
            }
            
            float fsize = (float)fontsize;
            Font font = .deriveFont(fsize);
            graphics.setFont(font);
            FontRenderContext context = graphics.getFontRenderContext();
            int sw = (intfont.getStringBounds(context).getWidth();
            x = width - sw - fontsize;
            y = height - fontsize;
        } else {
            throw new IllegalArgumentException("Unknown position : " + );
        }
        if(x <= 0 || y <= 0) {
            return ;
        }
        
        if ( != null) {
            graphics.setColor();
            graphics.drawString(x + getShadowTranslation(fontsize), y + getShadowTranslation(fontsize));
        }
        graphics.setColor();
        graphics.drawString(xy);
    }

    
    

Returns:
the textWidthPercent
    public float getTextWidthPercent() {
        return ;
    }

    
    

Returns:
the position
    public Position getPosition() {
        return ;
    }

    
    

Parameters:
textWidthPercent the textWidthPercent to set
    public void setTextWidthPercent(float textWidthPercent) {
        this. = textWidthPercent;
    }

    
    

Parameters:
position the position to set
    public void setPosition(Position position) {
        this. = position;
    }
New to GrepCode? Check out our FAQ X