社区
J2ME
帖子详情
[100分求教]用J2ME/MIDP2.0如何将低分辨率图片扩大显示出来?
Muphinx
2004-08-23 11:10:46
各位高手,我发现不管是用ImageItem.setImage(...)还是Graphics.drawImage(...)
好像都只能将图片按原分辨率显示出来.我做了一个MIDlet将160 * 120的JPG
在Moto A760上显示出来,因为A760屏幕较大,图片显得很小,我想将图片扩大显示出来
但是前提是不改变图片的分辨率,不知道有什么办法没有?
请各位高手指教,绝对给分~
...全文
226
10
打赏
收藏
[100分求教]用J2ME/MIDP2.0如何将低分辨率图片扩大显示出来?
各位高手,我发现不管是用ImageItem.setImage(...)还是Graphics.drawImage(...) 好像都只能将图片按原分辨率显示出来.我做了一个MIDlet将160 * 120的JPG 在Moto A760上显示出来,因为A760屏幕较大,图片显得很小,我想将图片扩大显示出来 但是前提是不改变图片的分辨率,不知道有什么办法没有? 请各位高手指教,绝对给分~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Muphinx
2004-08-25
打赏
举报
回复
十分感谢ashram(孤鸿)的耐心指教~我明白该怎么弄了
也谢谢yg1982(游)的启发~
OK,这就结贴给分
sniper_bat
2004-08-24
打赏
举报
回复
哈哈,孤鸿的贴子,顶一下.
顺便也帮我顶一下...
:P
http://community.csdn.net/Expert/topic/3295/3295330.xml?temp=.225033
ashram
2004-08-24
打赏
举报
回复
随便说一下,上面提供的方法如果扩大的太多回产生锯齿,如果用双线形插值可以解决锯齿的问题。可是双线形插值速度太慢一般是不能接受的,只是从技术角度来说双线形插值值得去了解。
yg1982
2004-08-24
打赏
举报
回复
up,不错
ashram
2004-08-24
打赏
举报
回复
我再说明一下思想吧,就是比如原图是10*10,要扩展到100*100;那先扩展成100*10就是先变成宽的图形,我们把图形看成由100条树直且长度为10的线条组成。具体作法是:那扩展后图形的前10条线都对应原图的第一条,那就在前10条线上画上原图的第一条线,其他的依次类推,这样我们就得到一张高于原图一样,但较宽的图形。在用相同的方法加工的得到的图片,不过这次是把图形看成一条条横的线组成的。即在高度上进行扩展。最后的到想要的图片。
ashram
2004-08-24
打赏
举报
回复
yg1982(游) 的方法只适用于J2SE因为SE中有
g.drawImage(Image img,int x,int y,int Width,int Height, ImageObserver observer) ;
这样的方法,这个方法本身就可缩放图象。
真的要做也不是不可以,不过比较麻烦,而且消耗比较多的处理时间。如果性能好的机器可以考虑使用。
public Image scaleImg(Image src,int dstW,int dstH)
{
int srcW = src.getWidth();
int srcH = src.getHeight();
Image buf1 = Image.createImage(dstW,srcH);
Graphics bg = buf1.getGraphics();
int srcX=0;
for(int x = 0;x<dstW;x++)//先横向扩展
{
srcX = x*srcW/dstW;//求扩展后的某点X所对应的原图上的X
bg.setClip(x,0,1,srcH);
bg.drawImage(src,x-srcX,0,0);
}
Image buf2 = Image.createImage(dstW,dstH);
bg = buf2.getGraphics();
int srcY = 0;
for(int y=0;y<dstH;y++)
{
srcY = y*srcH/dstH;
bg.setClip(0,y,dstW,1);
bg.drawImage(buf1,0,y-srcY,0);
}
return buf2;
}
yg1982
2004-08-24
打赏
举报
回复
不好意思,没看清楚你上面的话,上面这个方法要新生成一张图片。
如果要像你说的那样,你需要先将图片转化为数组,然后再对数组作处理,具体方法应该是取渐近色吧。也就是说,在两个数组值之间加一个值,大小为前后两个值的平均数,但这好像只能扩大相应倍数。
yg1982
2004-08-24
打赏
举报
回复
给你代码,这是csdn上一个朋友的,具体名字忘了,可以将图片放大(不过是用j2se),希望对你有帮助.
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
public class ResizeImage {
public static void main(String[] args) {
try {
//源图片
String imageFile = "C:/Documents and Settings/ghost/My Documents/My Pictures/1.jpg";
InputStream imageIn = new FileInputStream(new File(imageFile));
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
BufferedImage im = decoder.decodeAsBufferedImage();
int imh = im.getHeight(null);
int imw = im.getWidth(null);
int multiple = 2; //放大倍数
BufferedImage imout = new BufferedImage(imw * multiple, imh * multiple, 1);
Graphics g = imout.getGraphics();
g.drawImage(im, 0, 0, imw * multiple, imh * multiple, null);
//目的图片
FileOutputStream output = new FileOutputStream("C:/Documents and Settings/ghost/My Documents/My Pictures/2.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(imout);
imageIn.close();
output.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
artmouse
2004-08-24
打赏
举报
回复
感觉这个东西比较困难,好像没有直接的方法可以这样的,除非你自己弄,按插值的方法做出来
Muphinx
2004-08-24
打赏
举报
回复
没有人会吗?就是说我想把一张160 * 120的图片“放大”显示出来,但是不能改变该图片本身的分辨率,有什么办法吗?
J2ME
的现状与发展
SUN中国工程研究院 软件技术中心 王刚摘要本文简要介绍了
J2ME
的有关概念和现状、
MIDP2
.0的最新特点,并对
J2ME
的竞争对手、
J2ME
应用程序的兼容性以及其在Web Services中的应用做了阐述和
分
析。什么是
J2ME
?当JAVA平台发展到JAVA 2的版本以后,为了适应不同级别计算机硬件的开发需要,JAVA平台形成了三个主要
分
支:Java 2, Standard E
J2ME
简明教程上
第一章
J2ME
开发简介 目标: 掌握
J2ME
的基本概念 了解CLDC特性 对手机开发有整体上的认识 1.1
J2ME
基本概念 手机上的应用软件经历了3个阶段: z 仅提供基本通话功能 z 简单的应用程序(电话簿) z 网络功能(WAP) 使用人群的增长,手机厂商依然闭门造车,导致2个问题的出现: z 没有开放的平台,各自的软件不能相互使用。 z 访问Inter
J2ME
猜数字游戏源码解析与实战开发
猜数字游戏是一种简单而经典的互动游戏,其核心机制如下:系统生成一个1~
100
之间的随机整数;玩家通过输入猜测数字;系统反馈“猜大了”、“猜小了”或“猜对了”;玩家在限定次数内完成目标,否则游戏失败。该机制虽然简单,但涵盖了输入处理、数据比较、状态判断、反馈输出等基础逻辑,是学习移动游戏开发的理想案例。在游戏开发中,状态管理是控制游戏流程的关键。猜数字游戏可以定义以下几种状态:状态名称描述MENU主菜单状态PLAYING游戏进行中。
J2ME
最佳实践 - 1
概述
J2ME
是Sun发布的运行在小型设备上的微型版Java的一系列标准,其中,最重要的标准便是运行在手机上的MIDP应用程序了。到目前为止,MIDP一共发布了两个版本:MIDP 1.0(JSR37)和MIDP 2.0(JSR118),2.0版本可以向后兼容1.0版本,也就是说,支持MIDP 2.0的手机可以同时运行MIDP 1.0和MIDP 2.0的应用程序。本文将重点讲述开发MIDP应用程序时非
使用Antenna打包
J2me
程序
使用Antenna打包
J2me
程序 一、概述Antenna: [ æntenə ] n. 触角,天线 由于手中的项目需要为多个合作商提供版本,并且要求服务器端能够通过这些版本区
分
出来自不现合作商的用户,因此需要为每个合作商打包一个客户端;假设有
100
个合作商,每个合作商要打包7个机型,则共需打包7*
100
=700个包;假设打好每个包并做简要测试需要时间5
分
钟,则700个包共需用时
J2ME
13,096
社区成员
26,491
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章