j2me如何让一张大小120*120的图片,显示为80*80啊,按比例缩小
答案:3 悬赏:50 手机版
解决时间 2021-03-28 16:56
- 提问者网友:眉目添风霜
- 2021-03-28 06:31
j2me如何让一张大小120*120的图片,显示为80*80啊,按比例缩小
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-03-28 07:09
我写了个,传入图片和要拉伸的宽和高,返回拉伸后的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);
}追问你真强啊~~果然好用,哈哈,能加你Q不
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不
全部回答
- 1楼网友:末日狂欢
- 2021-03-28 08:00
需要一个函数来改变图片大小,我给你提供一个:
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 的图片。
另外,虚机团上产品团购,超级便宜
- 2楼网友:低音帝王
- 2021-03-28 07:47
这个问题好解决,最简单的方法有下面两种:
1、安装ACDsee 5.0,这个软件也能对图片进行处理,将分辨率为120*120的改为80*80,打开软件,点击“工具”,下面有个“调整大小”,在调整大小对话框中有"宽度"和“高度”的调节,还可以设置是否按照比例调节。我常常用这款软件调节图片分辨率,挺好用的!!
2、当然就是PS了,如果你有幸刚好装了PS,那就用这招吧。打开PS软件,在“图像”中有“图像大小”按钮,点击即可调节大小。具体的相信你一看就知道了。
祝问题早日解决!!
1、安装ACDsee 5.0,这个软件也能对图片进行处理,将分辨率为120*120的改为80*80,打开软件,点击“工具”,下面有个“调整大小”,在调整大小对话框中有"宽度"和“高度”的调节,还可以设置是否按照比例调节。我常常用这款软件调节图片分辨率,挺好用的!!
2、当然就是PS了,如果你有幸刚好装了PS,那就用这招吧。打开PS软件,在“图像”中有“图像大小”按钮,点击即可调节大小。具体的相信你一看就知道了。
祝问题早日解决!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯