java载入一张图片,但是图片太大了,怎样只显示指定某一部分? 新手,希望能附上一些代码。在线等答案。

 我来答
zgh26782000
推荐于2016-12-02 · TA获得超过1453个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:502万
展开全部
画指定区域
public abstract boolean drawImage(Image img,
int x,
int y,
int width,
int height,
ImageObserver observer)绘制指定图像中已缩放到适合指定矩形内部的图像。
图像绘制在此图形上下文坐标空间的指定矩形内部,并且如果需要,则进行缩放。透明像素不影响该处已存在的像素。

此方法在任何情况下都立刻返回,甚至在整个图像没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage 返回 false。随着更多的图像可用,装入图像的进程将通过调用图像观察者的 imageUpdate 方法来通知它。

图像的缩放版本不一定立刻是可用的,因为已经为此输出设备构造了图像的非缩放版本。每种大小的图像可以被分别缓存,并由各自图像产生序列中的原始数据生成。

参数:
img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何动作。
x - x 坐标。
y - y 坐标。
width - 矩形的宽度。
height - 矩形的高度。
observer - 当转换了更多图像时要通知的对象。
更多追问追答
追问
能稍微写下代码吗~?
而且这个函数是不是会自动缩放~?我不要缩放,就要原比例
追答
这个不会自动缩放,只是画指定区域
百度网友b4855c5
2012-04-24 · TA获得超过1071个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:959万
展开全部
把图片缩放
public BufferedImage fixPic(int height, int width) {
BufferedImage read = ImageIO.read(new File(imgPath));
Image scaledInstance = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);
BufferedImage newimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics graphics = newimg.getGraphics();
graphics.drawImage(scaledInstance, 0, 0, null);
graphics.dispose();

return newimg;
}
追问
亲~我不要缩放,就是按原比例,我其实想做游戏,把地图存好,然后通过滚动屏幕显示每个区域
追答
不缩放更好办
public BufferedImage fixPic(int height, int width) {
BufferedImage read = ImageIO.read(new File(imgPath));
BufferedImage newimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics graphics = newimg.getGraphics();
graphics.drawImage(read, 0, 0, null);
graphics.dispose();

return newimg;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daay1986
2012-04-24 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1479万
展开全部
多大的图啊?5000*5000是没问题的,如果不行就多开内存就是了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
春日限時椿花3z
2012-04-24
知道答主
回答量:97
采纳率:0%
帮助的人:24.6万
展开全部
貌似困难
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式