`
lsj_2008_bj
  • 浏览: 7744 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

学习笔记5

阅读更多

告警展示3

对于存在告警信息的网元渲染,可以添加文字或图标,以加强其渲染效果或突出特例,在Twaver中可以通过添加装饰图标来实现相应功能。

Twaver中提供一组预定义的图标去展示网元状态,这些图标被IconAttchmentHolder管理,可以很容易定制新的图标添加到网元对象上。

Twaver文档中为展示相应功能,提供了一个例子:

 

//定义一个附加图标类
//必须定义成静态的公共类

public static class MyIconAttachment extends IconAttachment{
  public MyIconAttachment(String name, ElementUI ui) {
    super(name, ui, TWaverUtil.getImageIcon("myIcon.png"));
  }
}
private void step8() {
  String iconName="document";

//注册附加图标
  TUIManager.registerAttachment(iconName, MyIconAttachment.class);
  //添加附加图标

  Element element = box.getElementByID("A");
  element.addAttachment(iconName);
}

 

通过jdk也可以实现相似功能,其代码及说明如下:

  /**
  * 获取按照输入长度和宽度设定的图片
  * @param image 源图片
  * @param width 宽度
  * @param hight 高度
  * @return
  */
 public static ImageIcon resizeIcon(ImageIcon image, int width, int hight) {
  if (image != null && image.getIconWidth() != -1
    && image.getIconHeight() != -1) {
   BufferedImage bi = new BufferedImage(image.getIconWidth(), image
     .getIconHeight(), BufferedImage.TYPE_INT_ARGB);
   Graphics2D biContext = bi.createGraphics();
   biContext.drawImage(image.getImage(), 0, 0, null);
   Image scaledImage = bi.getScaledInstance(width, hight,
     Image.SCALE_DEFAULT);
   return new ImageIcon(scaledImage);
  }
  return null;
 }

 

说明:本方法主要是将图片生成符合要求的图标文件,利用图片生成一个BufferedImage对象,然后利用getScaledInstance()创建一个新的图标文件文件。

 

getScaledInstance()方法:创建一个指定大小的新图像,此方法被调用时Image.SCALE_DEFAULT被提供,这个提示来自于java.awt.Image类:

Image.SCALE_DEFAULT

Image.SCALE_REPLICATE

Image.SCALE_FAST

Image.SCALE_SMOOTH

Image.SCALE_AREA_AVERAGING

这些提示分为两类:DEFAULTREPLICATEFASTSunJava实现上完全相等,它们使用与drawImage()NEAREST_NEIGHBOR提示相同的方式。AREA_AVERAGINGSMOOTH方式在SunJava实现上完全相等,它们与getScaledInstance()的其他提示或drawImage()BILINEARBICUBIC相比,通常产生的结果质量更高,尤其在大比例缩小一个图像的时候。

<!--EndFragment-->

 

/**
  * 将一个图片设置到另一个图片里面,也可以理解为图片水印处理
  * @param pressImg 水印图片
  * @param targetImg 目标图片
  * @param x 修正值 默认在中间
  * @param y 修正值 默认在中间
  * @param alpha 透明度
  */

 public static ImageIcon processImage(Image pressImg, Image targetImg,
   int x, int y, float alpha) {
  if (pressImg != null && targetImg != null) {
   int wideth = targetImg.getWidth(null);
   int height = targetImg.getHeight(null);
   BufferedImage image = new BufferedImage(wideth, height,
     BufferedImage.TYPE_INT_ARGB);
   Graphics2D g = image.createGraphics();
   g.drawImage(targetImg, 0, 0, wideth, height, null);
   int pressWideth = pressImg.getWidth(null);
   int pressHeight = pressImg.getHeight(null);
 g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
     alpha));
   g.drawImage(pressImg, x, y, pressWideth, pressHeight, null);
   g.dispose();
   return new ImageIcon(image);
  }
  return null;
 }

说明:本方法主要是通过图片合成技术生成一个新的图片对象。

 

具体示例显示:

 

 

与添加图标原理相似,也可以添加文字标注:

 

 /**
  * 在图片中添加文字,可以利用透明度属性来控制文字的显示程度,即可以理解为设置文字水印 若没有透明度要求,可以直接设置alpha为1.0f
  * @param text  要显示的文字
  * @param targetImg   目标图片
  * @param fontName  字体名称
  * @param fontStyle  字体样式
  * @param color  字体颜色
  * @param fontSize  字体大小
  * @param x x坐标位置
  * @param y y坐标位置
  * @param alpha 透明度,一般设置为1.0f
  */

 public  ImageIcon processImageWithText(String text, Image srcImage,
   String fontName, int fontStyle, Color color, int fontSize, int x,
   int y, float alpha) {
  if (srcImage != null && srcImage.getWidth(null) != -1
    && srcImage.getHeight(null) != -1) {
   int width = srcImage.getWidth(null);
   int height = srcImage.getHeight(null);
   BufferedImage image = new BufferedImage(width, height,
     BufferedImage.TYPE_INT_ARGB);
   Graphics2D g = image.createGraphics();
   g.drawImage(srcImage, 0, 0, width, height, null);
   g.setColor(color);
   g.setFont(new Font(fontName, fontStyle, fontSize));
         g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha));
   g.drawString(text, x, y);
   g.dispose();
   return new ImageIcon(image);
  }
  return null;
 }

具体示例显示:

 

 

 

  • 大小: 5.2 KB
  • 大小: 4.7 KB
分享到:
评论

相关推荐

    java学习笔记5(java多线程)

    java学习笔记5(java多线程)java学习笔记5(java多线程)

    Deeplearning深度学习笔记v5.53

    Deeplearning深度学习笔记v5.53 吴恩达机器学习笔记更新--在这 5 堂课中,学生将可以学习到深度学习的基础,学会构建神经网络,并用在包括吴 恩达本人在内的多位业界顶尖专家指导下创建自己的机器学习项目。...

    良葛格Java_JDK_5.0学习笔记5

    良葛格Java_JDK_5.0学习笔记5

    SAP BW+学习笔记5

    我的SAP BW成长学习笔记之5 SAP BW

    Java学习笔记学习笔记

    Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...

    CCNA学习笔记 CCNA学习笔记

    CCNA学习笔记 CCNA学习笔记 CCNA学习笔记

    PHP个人学习笔记

    PHP个人学习笔记

    希沃白板学习笔记.pdf

    希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    ssh学习笔记1 ssh学习笔记1

    ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1

    springcloudalibaba学习笔记

    springcloudalibaba学习笔记

    cad12学习笔记

    cad12学习笔记cad12学习笔记cad12学习笔记cad12学习笔记cad12学习笔记cad12学习笔记

    contiki 学习笔记

    Contiki学习笔记:进程、事件、etimer关系 Contiki 实例: Contiki学习笔记:创建两个交互进程 Contiki 主函数剖析: Contiki学习笔记:main函数剖析 Contiki学习笔记:启动一个进程process_start Contiki学习笔记...

    人工智能学习笔记,人工智能学习笔记

    人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能...

    Learning hard C# 学习笔记

    Learning hard C# 学习笔记

    docker学习笔记.md

    docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,...

    nginx学习笔记(软件+学习笔记)

    nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...

    go语言学习笔记

    go语言学习经典数据,雨痕,go语言学习笔记 第四版 pdf版本

    Friends学习笔记全集上

    《Friends学习笔记全集上》是一份非常珍贵的资源,专为那些希望通过观看经典美剧《Friends》(老友记)来提升英语水平的学习者所准备。这份笔记集合了第一部分的内容,涵盖了每一集的详细解读,包括剧本、字幕翻译...

    我的学习笔记大全--我的学习笔记大全

    我的学习笔记大全我的学习笔记大全我的学习笔记大全我的学习笔记大全

Global site tag (gtag.js) - Google Analytics