关于J2ME图片缩放的问题。
privatestaticfinalImagechangeImage(ImagesrcImage,intwNew,inthNew){//新图片大小intwSrc=srcI...
private static final Image changeImage(Image srcImage, int wNew, int hNew) {//新图片大小
int wSrc = srcImage.getWidth(); //获取图片宽高
int hSrc = srcImage.getHeight();
Image tmp = Image.createImage(wNew, hSrc);//创建图片画布
Graphics g = tmp.getGraphics(); //获得离屏画笔
for (int x = 0; x < wNew; x++) { //绘制横向
g.setClip(x, 0, 1, hSrc);
g.drawImage(srcImage,x-x*wSrc/wNew,0,Graphics.LEFT | Graphics.TOP);
}
Image dst = Image.createImage(wNew, hNew);
g = dst.getGraphics();
for (int y = 0; y < hNew; y++) {
g.setClip(0, y, wNew, 1);
g.drawImage(tmp,0,y-y*hSrc/hNew,Graphics.LEFT | Graphics.TOP);
}
return dst;
}
--------------
上面这段代码是图片缩放的方法,我没有很深的研究,我不明白的有2点
1:他为什么使用两个离屏画笔?(不同画布去获取画笔)
2:图像缩放,放大的原理是什么? 是不是根据当前像素数按一定比例增加像素来实现的? 比如之前有相连的10个红色像素,我现在想缩放50%那么就只绘制5个像素??但是如果是单数的话 那会不会出现失真呢? 展开
int wSrc = srcImage.getWidth(); //获取图片宽高
int hSrc = srcImage.getHeight();
Image tmp = Image.createImage(wNew, hSrc);//创建图片画布
Graphics g = tmp.getGraphics(); //获得离屏画笔
for (int x = 0; x < wNew; x++) { //绘制横向
g.setClip(x, 0, 1, hSrc);
g.drawImage(srcImage,x-x*wSrc/wNew,0,Graphics.LEFT | Graphics.TOP);
}
Image dst = Image.createImage(wNew, hNew);
g = dst.getGraphics();
for (int y = 0; y < hNew; y++) {
g.setClip(0, y, wNew, 1);
g.drawImage(tmp,0,y-y*hSrc/hNew,Graphics.LEFT | Graphics.TOP);
}
return dst;
}
--------------
上面这段代码是图片缩放的方法,我没有很深的研究,我不明白的有2点
1:他为什么使用两个离屏画笔?(不同画布去获取画笔)
2:图像缩放,放大的原理是什么? 是不是根据当前像素数按一定比例增加像素来实现的? 比如之前有相连的10个红色像素,我现在想缩放50%那么就只绘制5个像素??但是如果是单数的话 那会不会出现失真呢? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询