j2me如何让一张大小120*120的图片,显示为80*80啊,按比例缩小
3个回答
2011-04-26
展开全部
这个问题好解决,最简单的方法有下面两种:
1、安装ACDsee 5.0,这个软件也能对图片进行处理,将分辨率为120*120的改为80*80,打开软件,点击“工具”,下面有个“调整大小”,在调整大小对话框中有"宽度"和“高度”的调节,还可以设置是否按照比例调节。我常常用这款软件调节图片分辨率,挺好用的!!
2、当然就是PS了,如果你有幸刚好装了PS,那就用这招吧。打开PS软件,在“图像”中有“图像大小”按钮,点击即可调节大小。具体的相信你一看就知道了。
祝问题早日解决!!
1、安装ACDsee 5.0,这个软件也能对图片进行处理,将分辨率为120*120的改为80*80,打开软件,点击“工具”,下面有个“调整大小”,在调整大小对话框中有"宽度"和“高度”的调节,还可以设置是否按照比例调节。我常常用这款软件调节图片分辨率,挺好用的!!
2、当然就是PS了,如果你有幸刚好装了PS,那就用这招吧。打开PS软件,在“图像”中有“图像大小”按钮,点击即可调节大小。具体的相信你一看就知道了。
祝问题早日解决!!
东莞大凡
2024-11-14 广告
2024-11-14 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于...
点击进入详情页
本回答由东莞大凡提供
2011-05-05
展开全部
需要一个函数来改变图片大小,我给你提供一个:
public static Image scaleImage(Image src, int dstW, int dstH) {
int srcW = src.getWidth();
int srcH = src.getHeight();
Image tmp = Image.createImage(dstW, srcH);
Graphics g = tmp.getGraphics();
int delta = (srcW << 16) / dstW;
int pos = delta / 2;
for (int x = 0; x < dstW; x++) {
g.setClip(x, 0, 1, srcH);
g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
pos += delta;
}
Image dst = Image.createImage(dstW, dstH);
g = dst.getGraphics();
delta = (srcH << 16) / dstH;
pos = delta / 2;
for (int y = 0; y < dstH; y++) {
g.setClip(0, y, dstW, 1);
g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
pos += delta;
}
return dst;
}
使用很简单,比如你原来的图片为 img1 :
Image img2 = scaleImage(img1, 200, 180);
img2 即成为一张把 img1 放大到 200*180 的图片。
另外,虚机团上产品团购,超级便宜
public static Image scaleImage(Image src, int dstW, int dstH) {
int srcW = src.getWidth();
int srcH = src.getHeight();
Image tmp = Image.createImage(dstW, srcH);
Graphics g = tmp.getGraphics();
int delta = (srcW << 16) / dstW;
int pos = delta / 2;
for (int x = 0; x < dstW; x++) {
g.setClip(x, 0, 1, srcH);
g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
pos += delta;
}
Image dst = Image.createImage(dstW, dstH);
g = dst.getGraphics();
delta = (srcH << 16) / dstH;
pos = delta / 2;
for (int y = 0; y < dstH; y++) {
g.setClip(0, y, dstW, 1);
g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
pos += delta;
}
return dst;
}
使用很简单,比如你原来的图片为 img1 :
Image img2 = scaleImage(img1, 200, 180);
img2 即成为一张把 img1 放大到 200*180 的图片。
另外,虚机团上产品团购,超级便宜
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我写了个,传入图片和要拉伸的宽和高,返回拉伸后的image
public Image resizeImg(Image img, int newWidth, int newHeight) {
int imgW = img.getWidth();
int imgH = img.getHeight();
int[] srcPixels = new int[imgW * imgH];
int[] destPixels = new int[newWidth * newHeight];
img.getRGB(srcPixels, 0, imgW, 0, 0, imgW, imgH);
int srcX;
int srcY;
for (int y = 0; y < newHeight; ++y) {
for (int x = 0; x < newWidth; ++x) {
srcX = (x * imgW) / newWidth;
srcY = (y * imgH) / newHeight;
destPixels[x + y * newWidth] = srcPixels[srcX + srcY * imgW];
}
}
return Image.createRGBImage(destPixels, newWidth, newHeight, true);
}
public Image resizeImg(Image img, int newWidth, int newHeight) {
int imgW = img.getWidth();
int imgH = img.getHeight();
int[] srcPixels = new int[imgW * imgH];
int[] destPixels = new int[newWidth * newHeight];
img.getRGB(srcPixels, 0, imgW, 0, 0, imgW, imgH);
int srcX;
int srcY;
for (int y = 0; y < newHeight; ++y) {
for (int x = 0; x < newWidth; ++x) {
srcX = (x * imgW) / newWidth;
srcY = (y * imgH) / newHeight;
destPixels[x + y * newWidth] = srcPixels[srcX + srcY * imgW];
}
}
return Image.createRGBImage(destPixels, newWidth, newHeight, true);
}
追问
你真强啊~~果然好用,哈哈,能加你Q不
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询