在SWT中显示图片并调整大小
2018-01-06 14:34
399 查看
如何在SWT中显示图片并调整大小呢?在swt中要显示的图片是不能改变大小的,比如我们用backgroundimage。但是有时我需要把我们想要显示的图片按一定比例自动的适应我们要显示的区域,这是我们要用画图的方法来实现。
每一个控件都有一个paintContral的事件,我们可以通过它的事件来画图像。
Image有两种获得图片文件的方法如:
final Display display=Display.getDefault();
Image image=SWTResourceManager.getImage(aaaa.class,”showpicture.jpg”);
//aaaa是当前文件的名字,showpicture.jpg是与当前文件在同一目录下的图片
//这种发放支持相对路径
//swt在运行时不支持项目内文件的实时更新。
Image image=new Image(display,”C:\\showpicture.jpg”);
//用这种方法时要把display放到可以引用的地方,不支持相对路径。
比如我们现在有一个label和一个button,点击button更换labeld 图片。
Image image=new Image(display,”C:\\a.jpg”);
label.addPaintListener(new PaintListener(){
public void PaintContral(PaintEvent e){
final Rectangle bounds=image.getBounds();
int picwidth=bounds.width; //图片宽
int picheight=bounds.height; //图片高
double H=200; //label的高
double W=150; //label的宽
double ratio=1; //缩放比率
double r1=H/picheight;
double r2=W/picwidth;
ratio=Math.min(r1,r2);
e.gc.drawImage(image,0,0,picwidth,picheight,0,0,
(int)(picwidth*ratio),(int)(picheight*ratio));
//参数1:图片
//2,3:图片要显示相对于要显示区域的坐标,左上角
//4,5:图片宽,高
//6,7:要显示图片的范围,要显示完整图片都为0
//8,9:图片将要显示的宽和高
}
});
我们只要在点击button的事件中写入:
image=new Image(display,”b.jpg”);
label.redraw();
就可以实现在点击按钮时更换图片了。
每一个控件都有一个paintContral的事件,我们可以通过它的事件来画图像。
Image有两种获得图片文件的方法如:
final Display display=Display.getDefault();
Image image=SWTResourceManager.getImage(aaaa.class,”showpicture.jpg”);
//aaaa是当前文件的名字,showpicture.jpg是与当前文件在同一目录下的图片
//这种发放支持相对路径
//swt在运行时不支持项目内文件的实时更新。
Image image=new Image(display,”C:\\showpicture.jpg”);
//用这种方法时要把display放到可以引用的地方,不支持相对路径。
比如我们现在有一个label和一个button,点击button更换labeld 图片。
Image image=new Image(display,”C:\\a.jpg”);
label.addPaintListener(new PaintListener(){
public void PaintContral(PaintEvent e){
final Rectangle bounds=image.getBounds();
int picwidth=bounds.width; //图片宽
int picheight=bounds.height; //图片高
double H=200; //label的高
double W=150; //label的宽
double ratio=1; //缩放比率
double r1=H/picheight;
double r2=W/picwidth;
ratio=Math.min(r1,r2);
e.gc.drawImage(image,0,0,picwidth,picheight,0,0,
(int)(picwidth*ratio),(int)(picheight*ratio));
//参数1:图片
//2,3:图片要显示相对于要显示区域的坐标,左上角
//4,5:图片宽,高
//6,7:要显示图片的范围,要显示完整图片都为0
//8,9:图片将要显示的宽和高
}
});
我们只要在点击button的事件中写入:
image=new Image(display,”b.jpg”);
label.redraw();
就可以实现在点击按钮时更换图片了。
相关文章推荐
- 在SWT中显示图片并调整大小
- java 添加背景图片(可根据窗口大小自动调整显示图片)
- 据客户端(浏览器中的网页body部分)的大小来动态的调整客户端内显示图像的大小,防止因浏览器的不同导致看见的图片不同
- Qt学习笔记之图片显示(自动调整大小适应设计的范围)
- SWT中显示图片并随窗口改变其大小
- xutils3无法设置图片显示大小
- 新闻内容页面自动调整超宽图片大小
- python 批量处理图片(格式转换,灰度图,调整大小)
- 图片固定大小显示问题
- Qt自适应大小显示图片,添加菜单
- 图片在固定大小容器中等比居中显示
- android动态调整图片大小
- 程序控制图片显示大小
- Android图片大小调整动态实现方法(bitmap)
- Qt自适应大小显示图片,添加菜单
- javascript: 改变和控制显示的图片大小
- MFC 窗口最大化和最小化,全局变量的使用、static居中显示、static的背景色设置为透明、根据屏幕自适应调整界面大小
- JS控制图片显示的大小(图片等比例缩放)
- html5根据图片固定大小,使大小不等的图片居中显示 用于列表中显示的图片的统一处理
- CSS之固定大小的div中自动显示图片的中间部分