文档库 最新最全的文档下载
当前位置:文档库 › java根据url抓取并生成缩略图的示例

java根据url抓取并生成缩略图的示例

java根据url抓取并生成缩略图的示例
java根据url抓取并生成缩略图的示例

java根据url抓取并生成缩略图的示例

public static Bitmap loadImageFromUrl(String url, int sc) {

URL m;

InputStream i = null;

BufferedInputStream bis = null;

ByteArrayOutputStream out = null;

byte isBuffer[] = new byte[1024];

if (url == null)

return null;

try {

m = new URL(url);

i = (InputStream) m.getContent();

bis = new BufferedInputStream(i, 1024 * 4);

out = new ByteArrayOutputStream();

int len = 0;

while ((len = bis.read(isBuffer)) != -1) {

out.write(isBuffer, 0, len);

}

out.close();

bis.close();

} catch (MalformedURLException e1) {

e1.printStackTrace();

return null;

} catch (IOException e) {

e.printStackTrace();

}

if (out == null)

return null;

byte[] data = out.toByteArray();

BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true;

BitmapFactory.decodeByteArray(data, 0, data.length, options); options.inJustDecodeBounds = false;

int be = (int) (options.outHeight / (float) sc);

if (be <= 0) {

be = 1;

} else if (be > 3) {

be = 3;

}

options.inSampleSize = be;

Bitmap bmp = null;

try {

bmp = BitmapFactory.decodeByteArray(data, 0, data.length, options); // 返回缩略图

} catch (OutOfMemoryError e) {

// TODO: handle exception

System.gc();

bmp = null;

}

return bmp;

}

遥感影像各参数提取和运算

遥感影像各参数提取和运算 一.实验目的 1.1 熟悉使用ENVI软件的一些常用功能; 1.2 学会利用ENVI软件对遥感影像的NDVI和NDWI进行计算,对典型地物的参数信息进行提取和分析。 二.实验内容 2.1 计算可见光至短波红外波段的7个波段的TOA反射率数据和热红外的2个波段的亮度温度值; 2.2 计算NDVI和NDWI; 2.3 选择水体、土壤、植被和人工建筑等典型地物,每种典型地物至少选择50个样点,提取各个样点的7个TOA反射率值、2个亮温值和2个光谱指数值; 2.4 针对各个典型地物的遥感参数进行统计分析,至少计算各个参数的Minimum, Maximum, Range and Standard Deviation,利用图表的形式对其进行专业分析。三.实验数据与实验平台 数据:LANDSAT 7 ETM+影像、p125r053_7t20001106.met 平台:ENVI 4.7软件 四.实验过程与结果分析 4.1. 计算可见光至短波红外波段的7个波段的TOA反射率数据和热红外的1个波段的亮度温度值。 实验步骤: (1)计算可见光至短波红外波段的7个波段的TOA反射率: Main menu →Basic Tools →Preprocessing →Calibration Utilities →Landsat Calibration→选择波段数为6的,点击 OK →Reflectance →Edit Calibration Parameters→输出文件名

图4.1.1 反射率参数设置 图4.1.2反射率转换结果图与原图对比 (7,4,3波段,左图为结果图,右图为原图) (2)转换成亮度温度值步骤: Main menu →Basic Tools →Preprocessing →Calibration Utilities →Landsat Calibration →选择波段数为2的,点击OK →Radiance →Edit Calibration Parameters→输出文件名

如何能让Java生成复杂Word文档(1)

先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker 模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。 AD:客户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈。 POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。 iText操作Excel还行。对于复杂的大量的word也是噩梦。 直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。 Word从2003开始支持XML格式,用XML还做就很简单了。 大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml 翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。 看看实际效果 首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中红线的部分就是我要输出的部分:

将编辑好的文档另存为XML 再用Firstobject free XML editor将xml中我们需要填数据的地方打上FreeMarker标记

电路实验报告1--叠加原理

电路实验报告1-叠加原理的验证 所属栏目:电路实验- 实验报告示例发布时间:2010-3-11 实验三叠加原理的验证 一、实验目的 验证线性电路叠加原理的正确性,加深对线性电路的叠加性和齐次性的认识和理解。 二、原理说明 叠加原理指出:在有多个独立源共同作用下的线性电路中,通过每一个元件的电流或其两端的电压,可以看成是由每一个独立源单独作用时在该元件上所产生的电流或电压的代数和。 线性电路的齐次性是指当激励信号(某独立源的值)增加或减小K 倍时,电路的响应(即在电路中各电阻元件上所建立的电流和电压值)也将增加或减小K倍。 三、实验设备 高性能电工技术实验装置DGJ-01:直流稳压电压、直流数字电压表、直流数字电流表、叠加原理实验电路板DGJ-03。 四、实验步骤 1.用实验装置上的DGJ-03线路, 按照实验指导书上的图3-1,将两路稳压电源的输出分别调节为12V和6V,接入图中的U1和U2处。 2.通过调节开关K1和K2,分别将电源同时作用和单独作用在电路中,完成如下表格。 表3-1

3.将U2的数值调到12V,重复以上测量,并记录在表3-1的最后一行中。 4.将R3(330 )换成二极管IN4007,继续测量并填入表3-2中。 表3-2 五、实验数据处理和分析 对图3-1的线性电路进行理论分析,利用回路电流法或节点电压法列出电路方程,借助计算机进行方程求解,或直接用EWB软件对电路分析计算,得出的电压、电流的数据与测量值基本相符。验证了测量数据的准确性。电压表和电流表的测量有一定的误差,都在可允许的误差范围内。 验证叠加定理:以I1为例,U1单独作用时,I1a=8.693mA,,U2单独作用时,I1b=-1.198mA,I1a+I1b=7.495mA,U1和U2共同作用时,测量值为7.556mA,因此叠加性得以验证。2U2单独作用时,测量值为-2.395mA,而2*I1b=-2.396mA,因此齐次性得以验证。其他的支路电流和电压也可类似验证叠加定理的准确性。 对于含有二极管的非线性电路,表2中的数据不符合叠加性和齐次性。 六、思考题 1.电源单独作用时,将另外一出开关投向短路侧,不能直接将电压源短接置零。 2.电阻改为二极管后,叠加原理不成立。

PHP使用imagick读取PDF生成png缩略图的两种方法

这篇文章主要介绍了PHP使用imagick读取PDF第一页生成png缩略图的两种方法,使用了PHP扩展php_imagick,需要的朋友可以参考下 一、ImageMagick是什么 ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD 等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。 二、php_imagick什么 一个可以供PHP调用ImageMagick功能的PHP扩展。使用这个扩展可以使PHP具备和ImageMagick相同的功能。 三、PDF生成png缩略图的两种方法 第一种: 代码如下:/** * PDF2PNG * @param $pdf 待处理的PDF文件 * @param $path 待保存的图片路径 * @param $page 待导出的页面-1为全部0为第一页1为第二页 * @return 保存好的图片路径和文件名 */ function pdf2png($pdf,$path,$page=0) { if(!is_dir($path)) { mkdir($path,true); } if(!extension_loaded('imagick')) { echo '没有找到imagick!' ; return false; } if(!file_exists($pdf)) { echo '没有找到pdf' ; return false; } $im = new Imagick(); $im->setResolution(120,120); //设置图像分辨率 $im->setCompressionQuality(80); //压缩比 $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页 //$im->thumbnailImage(200, 100, true); // 改变图像的大小 $im->scaleImage(200,100,true); //缩放大小图像

参数提取

对GDSII database进行gate-level寄生参数抽取 VIMICRO 祝侃 1.Abstract 伴随着SOC技术的发展,自动布局布线规模不断扩大,同时产品的上市周期 由于市场竞争的加剧压力也愈来愈大。因此,如何提高自动布局布线设计中寄生 参数验证的效率成为众多IC设计者必须要考虑的重要课题。 通过引入calibre DRC/LVS/XRC,vimicro已经发展了一套提高自动布局布 线设计验证效率的方法,这些方法包括GDSII文件的直接处理,使用gate-level 寄生参数抽取来满足数字电路的时序分析验证,以及修改相应的文件来加速寄生 参数的抽取等。 2. Introduction 首先,在自动布局布线结束后,我们通常会进行DRC/LVS检查,然后在 layout editor (如Virtuoso)里修改错误,最后得到DRC/LVS clean的GDSII 文件。这个时候前端设计人员发现功能有问题进行了修改,要求自动布局布线作 ECO。这样原先的DRC/LVS检查都要重新做一遍。 对DRC/LVS clean的GDSII 文件抽取寄生参数,然后拿这个含有寄生参数 的网表作 STA,如果时序可以满足要求的话,就不需要做那些重复的工作了。 Calibre xRC可以对GDSII 数据进行gate level 的寄生参数抽取. 这样的设计流程是针对于简单的ECO改动,例如IO位置的调整,或者对为 数不多的逻辑门连接关系的修改。对于复杂的改动,还必须应用自动布局布线的 ECO流程. 3. Flow Description

1).Run hierarchical LVS (PHDB Generation) 执行hierarchical LVS是为了对layout做器件和连接关系的抽取,并且建立版图和网表的cross-reference. 2).抽取寄生参数 (PDB Generation) Calibre XRC 抽取gate level的寄生参数. 3).写出网表 (FMT) Calibre xRC 从第二步抽取的寄生参数数据中写出DSPF 或 SPEF 网表. 4).静态时序分析 (STA) PrimeTime 读入DSPF 或 SPEF 网表,还有原来的verilog 网表 和cell library,产生SDF文件. 1).LVS-H 首先要Run hierarchical LVS,就需要设定hcell list.Calibre xRC 叫做xcell.这个xcell list跟普通的LVS使用的hcell list差不多,只是比LVS要更严格一些,需要Calibre识别出所有的standard cells and micro blocks.这样在第二步抽取寄生参数的时候Calibre才知道那些出现在hcell list里的

《Java范例开发大全》

下面是377个Java的例子。如果你是牛人,看看你能做出多少? 如果有人不相信这些例子都是Java做的,可以看看清华大学的《Java范例开发大全》实例1开发第一个Java程序 实例2自动提升 实例3自动转换 实例4常用基础类型之强制转换 实例5算术运算符 实例6关系运算符 实例7逻辑运算符 实例8位运算符 实例9移位运算符 实例10转型运算符 实例11常量与变量 实例12各种进制的转换 实例13 Java中的进制与移位运算符 实例14判断输入的年份是否为闰年 实例15抽奖活动 实例16xx乘法表 实例17如何列出素数 实例18 Java中的递归 实例19男生女生各多少人

实例20求xx数 实例21求任意一个正数的阶乘 实例22求n的n次方 实例23利用for循环输出几何图形 实例24xx 实例25求1到100之间的和 实例26存上100元需要多少天 实例27输出100之间的所有偶数 实例28如何判断回文数字 实例29输出100之间的所有奇数 实例30求最大的随机数 实例31判断字母分类 实例32优良及差 实例33打印任意一年日历 实例34一年四季的划分 实例35除0发生的算术异常(ArithmeticException) 实例36数组下标越界异常(ArrayIndexOutOfBoundsException)实例37数组元素类型不匹配异常(ArrayStoreException) 实例38强制类型转换异常(ClassCastException) 实例39索引越界异常(IndexOutOfBoundsException) 实例40空指针异常(NullPointerException)

语音信号特征参数提取方法

语音信号特征参数提取方法 阮雄飞微电子学与固体电子学 摘要:在语音技术的发展过程中使用了大量的语音信号特征参数, 好的语音信号特征参数能对语音识别起至关重要的作用。本文对语音信号特征参数提取方法以及国内外研究现状进行了介绍,最后介绍了Hilbert-Huang 这一新兴理论成果以及在特征提取中的应用。 关键词:语音技术特征提取HHT 1 引言 语音信号是一种短时平稳信号,即时变的,十分复杂,携带很多有用的信息,这些信息包括语义、个人特征等,其特征参数的准确性和唯一性将直接影响语音识别率的高低,并且这也是语音识别的基础[1]。特征参数应该能够比较准确地表达语音信号的特征具有一定的唯一性。 上世纪40年代,potter等人提出了“visiblespeech”的概念,指出语谱图对语音信号有很强的描述能力,并且试着用语谱信息进行语音识别,这就形成了最早的语音特征,直到现在仍有很多的人用语谱特征来进行语音识别[2]。后来,人们发现利用语音信号的时域特征可以从语音波形中提取某些反映语音特性的参数,比如:幅度、短时帧平均能量、短时帧过零率、短时自相关系数、平均幅度差函数等。这些参数不但能减小模板数目运算量及存储量而且还可以滤除语音信号中无用的冗余信息。语音信号特征参数是分帧提取的, 每帧特征参数一般构成一个矢量, 所以语音信号特征是一个矢量序列。我们将语音信号切成一帧一帧, 每帧大小大约是20-30ms。帧太大就不能得到语音信号随时间变化的特性, 帧太小就不能提取出语音信号的特征, 每帧语音信号中包含数个语音信号的基本周期。有时希望相邻帧之间的变化不是太大, 帧之间就要有重叠, 帧叠往往是帧长的1/2或1/3。帧叠大, 相应的计算量也大[3]。随着语音识别技术的不断发展时域特征参数的种种不足逐渐暴露出来,如这些特征参数缺乏较好稳定性且区分能力不好。于是频域参数开始作为语音信号的特征比如频谱共振峰等。经典的特征提取方法主要有LPCC(线性预测倒谱系数)、MFCC(美尔频率倒谱系数)、HMM(隐马尔科夫模型)、DTW(动态时间规整)等。 2 语音信号特征参数提取方法

如何用记事本编写一个简单的java代码

如何用记事本编写一个简单的j a v a代码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

一:怎么用记事本写第一个java代码 第一步:新建txt文档 首先我们在F盘新建一个txt文档,并命名为,如下图所示: 第二步:编写代码 我们双击打开:如下图所示 第三步:编写好代码 我们在记事本中写代码,写好后如下所示:

然后我们同时按Ctrl+s键保存,然后关闭记事本即可 上面的源代码如下: public class Test{//这里的Test为类名,这里类名要与我们刚才新建的记事本的名字必须一致,首字母大写 public static void main(String[] args){//java中的主函数的写法 "HelloWorld");//java中的输出语句写法 } } 第三步:打开控制台界面 我们在计算机中,打开如下图界面,

然后在这里,输入cmd,并按回车,然后弹出如图所示

第四步:在控制台中运行并输出 我们用鼠标点击一下里面黑色部分,然后输入F:然后回车,然后再输入javac 然后回车,最后输入java Test,就可以看到结果了,如下图所示:

红色圈出来部分就是结果了 二:温馨提示: 1,上面演算中在控制台中首先输入F:的原因是因为我在F盘建立一个文本文档,并命名为,如果你是把你的文档文档建立在D盘,则应该输入D: 以此类推。 2,如果你是在F盘下的CH文件夹建立一个记事本,并命名为,则输入的情况如下, cd CH表示转到CH这个文件夹下,然后再输入回车,再输入java Test 就可以看到运行结果了

如何写一个正确的JAVA程序

若在定义中出现了常数初始化字符,则大写基本类型标识符中地所有字母.这样便可标志出它们属于编译期地常数.个人收集整理勿做商业用途 包()属于一种特殊情况:它们全都是小写字母,即便中间地单词亦是如此.对于域名扩展名称,如,,或者等,全部都应小写(这也是和地区别之一).个人收集整理勿做商业用途() 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素地定义:() () () ()( ) () 对于自己创建地每一个类,都考虑置入一个(),其中包含了用于测试那个类地代码.为使用一个项目中地类,我们没必要删除测试代码.若进行了任何形式地改动,可方便地返回测试.这些代码也可作为如何使用类地一个示例使用.个人收集整理勿做商业用途() 应将方法设计成简要地、功能性单元,用它描述和实现一个不连续地类接口部分.理想情况下,方法应简明扼要.若长度很大,可考虑通过某种方式将其分割成较短地几个方法.这样做也便于类内代码地重复使用(有些时候,方法必须非常大,但它们仍应只做同样地一件事情). () 设计一个类时,请设身处地为客户程序员考虑一下(类地使用方法应该是非常明确地).然后,再设身处地为管理代码地人考虑一下(预计有可能进行哪些形式地修改,想想用什么方法可把它们变得更简单).个人收集整理勿做商业用途 () 使类尽可能短小精悍,而且只解决一个特定地问题.下面是对类设计地一些建议:■一个复杂地开关语句:考虑采用“多形”机制 ■数量众多地方法涉及到类型差别极大地操作:考虑用几个类来分别实现 ■许多成员变量在特征上有很大地差别:考虑使用几个类. () 让一切东西都尽可能地“私有”——.可使库地某一部分“公共化”(一个方法、类或者一个字段等等),就永远不能把它拿出.若强行拿出,就可能破坏其他人现有地代码,使他们不得不重新编写和设计.若只公布自己必须公布地,就可放心大胆地改变其他任何东西.在多线程环境中,隐私是特别重要地一个因素——只有字段才能在非同步使用地情况下受到保护.个人收集整理勿做商业用途 () 谨惕“巨大对象综合症”.对一些习惯于顺序编程思维、且初涉领域地新手,往往喜欢先写一个顺序执行地程序,再把它嵌入一个或两个巨大地对象里.根据编程原理,对象表达地应该是应用程序地概念,而非应用程序本身.个人收集整理勿做商业用途() 若不得已进行一些不太雅观地编程,至少应该把那些代码置于一个类地内部. () 任何时候只要发现类与类之间结合得非常紧密,就需要考虑是否采用内部类,从而改善编码及维护工作(参见第章小节地“用内部类改进代码”).个人收集整理勿做商业用途() 尽可能细致地加上注释,并用注释文档语法生成自己地程序文档. () 避免使用“魔术数字”,这些数字很难与代码很好地配合.如以后需要修改它,无疑会成为一场噩梦,因为根本不知道“”到底是指“数组大小”还是“其他全然不同地东西”.所以,我们应创建一个常数,并为其使用具有说服力地描述性名称,并在整个程序中都采用常数标识符.这样可使程序更易理解以及更易维护.个人收集整理勿做商业用途 () 涉及构建器和异常地时候,通常希望重新丢弃在构建器中捕获地任何异常——如果它造成了那个对象地创建失败.这样一来,调用者就不会以为那个对象已正确地创建,从而盲目地继续.个人收集整理勿做商业用途

图片缩略图和原图不一样

图片缩略图和原图不一样 在正常情况下一个图片和它的缩略图应该是一样的,但是在有的时候会出现图片和缩 略图完全不一样的情况。也就是说用Windows自带的图片查看器看到的图片是一个样子,而 这些图片在文件夹中“预浏览”或者“缩略图”看到的却是完全另一个样子。 出现这种情况是因为在Windows缩略图中有一个Bug,利用这个Bug,Exifer就能够轻松 制作图片和缩略图不同的图片。 一、缩略图原理 这是什么原理呢?因为现在JPEG的文件采用了压缩的方式,其过程比较复杂。为了能 让大家快速查看其缩略图,JPEG标准在文件中记录了一些EXIF 信息。数码照相机拍出的图 片带有相机的很多参数,这都属于EXIF信息,其中缩略图也是一部分。缩略图是一幅较小 的JPEG图片,存储在EXIF信息段。支持EXIF信息内嵌缩略图数据库的片格式的图片除了JP EG格式(.jpg、.jpeg、.jpe),还有PSD、PDD、EPS、TIF、TIFF 等格式。 而Windows在第一次显示缩略图时先读当前目录中的“Thum

bs.db”这个文件,其实这 是一个缩略图数据库,从而来判断是否有该图片的缩略图。如果不存在“Thumbs.db”文件 或者该库中不存在该图片的缩略图,那么Windows会尝试取图片中的EXIF信息,判断是否存 在缩略图数据。如果图片中EXIF信息中不存在缩略图信息或信息错误,那么Windows就会用 插值的方法重新生成缩略图(如果可能则保存到当前目录中的“Th umbs.db”缩略图数据库 中)。 二、如何制作缩略图 了解了这些,既然知道原理,那么我们能否也做出这样的图片呢?其实很简单,只需 通过修改EXIF信息中的缩略图信息达到上面那种奇异的效果了。那么用什么软件能够修改 EXIF信息呢?这里笔者给大家介绍一款名字为Exifer 软件,通过它就可以很轻松的修改E XIF信息。 第一步:首先打开Exifer,选择要进行添加要修改的图片(图1)。 第二步:图片添加好之后,会在右边EXIF thumbnail中看到图片的缩略图,这时候按鼠标

Java 图片处理 格式转换

Java 图片处理(包括 Jmagick 的应用) 图片处理( 的应用)
作者: 佚名, 出处:IT 专家网,
2010-10-29 08:30
责任编辑: 谢妍妍,
近期有使用到图片的压缩处理,由于在之前用 Java 处理时,在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
近期有使用到图片的压缩处理, 由于在之前用 Java 处理时, 在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
1、纯 Java 类处理图片代码
Java 代码
以下是代码片段: 以下是代码片段: /** * 转换图片大小,不变形 * * @param img * 图片文件 * @param width * 图片宽 * @param height * 图片高 */ public static void changeImge(File img, int width, int height) { try { Image image = ImageIO.read(img); //图片尺寸的大小处理, 如果长宽都小于规定大小, 则返回, 如果有一个大于规定大小, 则等比例缩放 int srcH = image.getHeight(null); int srcW = image.getWidth(null); if (srcH <= height && srcW <= width) { return;

看完这30个技巧让你写好Java代码

看完这30个技巧让你写好Java代码 2019.8整理 成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。 (2) 为了常规用途而创建一个类时,请采取”经典形式”,并包含对下述元素的定义:

(3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。 (4) 应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分。理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们仍应只做同样的一件事情)。 (5) 设计一个类时,请设身处地为客户程序员考虑一下(类的使用方法应该是非常明确的)。然后,再设身处地为管理代码的人考虑一下(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。 (6) 使类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议: ?一个复杂的开关语句:考虑采用”多形”机制 ?数量众多的方法涉及到类型差别极大的操作:考虑用几个类来分别实现 ?许多成员变量在特征上有很大的差别:考虑使用几个类 (7) 让一切东西都尽可能地”私有”–private。可使库的某一部分”公共化”(一个方法、类或者一个字段等等),就永远不能把它拿出。若强行拿出,就可能破坏其他人现有的代码,使他们不得不重新编写和设计。若只公布自己必须公布的,就可放心大胆地改变其他任何东西。在多线程环境中,隐私是特别重要的一个因素–只有private字段才能在非同步使用的情况下受到保护。 (8) 谨惕”巨大对象综合症”。对一些习惯于顺序编程思维、且初涉OOP领域的新手,往往喜欢先写一个顺序执行的程序,再把它嵌入一个或两个巨大的对象里。根据编程原理,对象表达的应该是应用程序的概念,而非应用程序本身。 (9) 若不得已进行一些不太雅观的编程,至少应该把那些代码置于一个类的内部。 (10) 任何时候只要发现类与类之间结合得非常紧密,就需要考虑是否采用内部类,从而改善编码及维护工作(参见第14章14.1.2小节的”用内部类改进代码”)。 (11) 尽可能细致地加上注释,并用javadoc注释文档语法生成自己的程序文档。

叠加方式的组合体图形的绘制

一、叠加方式的组合体图形的绘制 以下图支架为例说明以叠加为主要形成方式的组合体的画图步骤。 1.形体分析 ⑴分析所画组合体是由哪些基本几何体组成的? ⑵分析各基本几何体的相对位置和相邻表面的关系,如是否平齐?相 交?相切? 2.视图选择 (1)首先将组合体摆平放正,尽量使组合体的对称面、主要轴线或大的端面与投影面平行或垂直。 (2)选择主视图,将最能反映所画组合体形体特征的投影方向作为主视图的投影方向。(3)兼顾其它视图,尽量使俯、左视图中的虚线最少。 3.布置图面 (1)根据所画组合体的实际尺寸,选取适当的比例和图幅大小。 (2)画作图基线,以确定组合体三视图的位置。一般用作图基线表示组合体的主要端面、对称面或中心线、主要轴线等的投影位置。 (3)三视图之间应距离恰当,留有足够的标注尺寸的空间。整张图面力求匀称、协调。4.画底稿(用H或2H型铅笔画底稿) (1)根据形体分析,先画主要形体(大形体),后画次要形体(小形体)。 (2)各形体均应先画其基本轮廓,后完成局部细节。 (3)每一局部均应先画反映其形体特征的那个投影,后完成其它两投影。 (4)三个视图一起画。 5.检查、清理和加深图面(用B或2B型铅笔加深粗实线,用HB 或H型铅笔加深细实线、细点画线、标注尺寸、写字等) (1)检查底稿,认真校核。查看各视图是否符合投影规律?表面相交、相切关系是否表达正确等? (2)清理图面,擦去不需要的作图线,拾遗补缺。 (3)加深图线。其加深步骤为:先曲后直、先上后下、先左后右、最后加深斜线。同类线型应一起加 6.最后完成的支架三视图见下图 (1)支架分析:

(2)布置图面: (3)画底稿

java实现将图片和缩略图存储到数据库中

public class PicCreateCtrl extends HttpServlet{ public PicCreateCtrl(){ super(); } public void destroy(){ super.destroy();//Just puts"destroy"string in log //Put your code here } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doPost(request,response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ response.setContentType("text/html;charset=gb2312"); PrintWriter out=response.getWriter(); SmartUpload mySmartUpload=new SmartUpload();//creat new SmartUpload object long file_size_max=10000000;//the bigest size of file String fileExt=""; String url="temp/";//the path of save upload file mySmartUpload.initialize(this.getServletConfig(),request,response); try{ mySmartUpload.setAllowedFilesList("png,emf,bmp,jpg,gif,BMP,JPG,GIF,PN G,EMF"); //上载文件 mySmartUpload.upload(); }catch(Exception e){ e.printStackTrace(); out.print(""); } try{ BaseduManager manager=new BaseduManager(); File myFile=mySmartUpload.getFiles().getFile(0); String xh=mySmartUpload.getRequest().getParameter("xcxh"); if(myFile.isMissing()){ out.print("