[转]自写类笔记-描边文字

本文介绍了一个名为 BoundLabel 的 Flash 类实现,该类用于创建带有边界效果的文字标签。通过设置文字、文字格式及边界颜色等属性,可以实现不同样式的文字标签。
[url]http://uh.9ria.com/space-12147-do-blog-id-374.html[/url]


package{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFormat;

public class BoundLabel extends Bitmap
{
private var _text:String="";
private var _textField:TextField;
public var defaultTextFormat:TextFormat=new TextFormat();
public function BoundLabel(){
super();
}
public function get text():String{
return _text;
}
public function set text(value:String):void{
if (_text==value) return;
_text=value;
_draw();
}
public function setTextFormat(format:TextFormat,beginIndex:int=-1,endIndex:int=-1):void{
if (endIndex==-1){
endIndex=_textField.text.length;
}
_textField.setTextFormat(format,beginIndex,endIndex);
_parseText();
}
public function setBound(color:uint,beginIndex:int=-1,endIndex:int=-1):void{
_addBound(color,beginIndex,endIndex);
}
private function _parseText():void{
var _bitmapData:BitmapData;
_textField.width=_textField.textWidth+5;
_textField.height=_textField.textHeight+5;

_bitmapData=new BitmapData(_textField.width,_textField.height,true,0);
_bitmapData.draw(_textField);

if (bitmapData) bitmapData.dispose();
bitmapData=_bitmapData;
}
private function _draw():void{
_textField=new TextField();
_textField.defaultTextFormat=defaultTextFormat;
_textField.text=_text;
_parseText();
}
private function _trySetPixel32(toBitmapData_:BitmapData,i_:int,j_:int,color_:uint):void{
if (i_>=0 && j_>=0 && i_<toBitmapData_.width && j_<toBitmapData_.height && toBitmapData_.getPixel32(i_,j_)==0){
toBitmapData_.setPixel32(i_,j_,color_);
}
}
private function _addBound(color:uint,beginIndex:int=-1,endIndex:int=-1):void{
if (!bitmapData || color==0) return;

var _rect:Rectangle=new Rectangle();
if (beginIndex==-1) beginIndex=0;
if (endIndex==-1) endIndex=_textField.text.length;
for (var _i:int=beginIndex;_i<endIndex;_i++){
_rect=_rect.union(_textField.getCharBoundaries(_i));
}

var _newBitmapData:BitmapData=new BitmapData(bitmapData.width,bitmapData.height,true,0);
for (_i=0;_i<bitmapData.width;_i++){
for (var _j:int=0;_j<bitmapData.height;_j++){
if (bitmapData.getPixel32(_i,_j)!=0) {
_newBitmapData.setPixel32(_i,_j,bitmapData.getPixel32(_i,_j));

if (_rect.contains(_i,_j)){
_trySetPixel32(_newBitmapData,_i-1,_j,color);
_trySetPixel32(_newBitmapData,_i+1,_j,color);
_trySetPixel32(_newBitmapData,_i,_j-1,color);
_trySetPixel32(_newBitmapData,_i,_j+1,color);
}
}
}
}
bitmapData.dispose();
bitmapData=_newBitmapData;
}
}
}


//setBound会被任何一种其他的操作覆盖,要最后执行。
内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值