java swing中的某个drawImage方法

GUI编程基础学习(五)——图片的获取、显示及裁剪 Java提供了java.awt.Image包来管理与图像文件相关的信息,因此执行与图像文件有关的操作需要导入这个包。 除了Image类之外,java.awt包还提供了其他的基本图像支持,例如Graphics类的drawImage()方法、Toolkit对象的getImage()方法及MediaTracker类。 Toolkit类提供了两个getImage()方法来加载图片: ①Image g... 阅读详情

drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)

功能说明

这个方法的作用是把图片的特定区域绘制到屏幕上,并且在绘制的过程中可以对图片进行缩放处理,让它和你设定的目标区域相契合。而且,图片中透明的部分不会覆盖原来已经存在的像素。

参数解释

  • img:这是你要绘制的图片。要是这个参数为空,那么这个方法就不会进行任何操作。
  • 目标矩形(dx1, dy1, dx2, dy2):这是用来确定图片最终显示位置和大小的区域。
    • (dx1, dy1)是目标区域左上角的坐标。
    • (dx2, dy2)是目标区域右下角的坐标。
  • 源矩形(sx1, sy1, sx2, sy2):此区域用于确定你想从原图中截取哪一部分。
    • (sx1, sy1)是原图中你要截取区域左上角的坐标。
    • (sx2, sy2)是原图中你要截取区域右下角的坐标。
  • observer:当图片加载进度有更新时,系统会通知这个对象。

缩放规则

系统会自动把源矩形区域映射到目标矩形区域。在这个过程中,可能会对图片进行缩放或者翻转操作,具体情况如下:

  • 如果目标区域比源区域大,图片会被放大。
  • 如果目标区域比源区域小,图片则会被缩小。
  • 要是源矩形的坐标顺序和目标矩形的坐标顺序不一致,图片就会被翻转。

返回值情况

  • 返回 false 表示图片还在加载或者处理中。
  • 返回 true 表示图片已经完全加载完成并且可以正常显示。
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;

import javax.swing.*;
public class drawImageDemoA extends JFrame {

	drawImageDemoA_Panel panel;
	drawImageDemoA(){
		super("练习图片翻转");
		setBounds(600, 200, 600, 600);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		panel = new drawImageDemoA_Panel();
		add(panel);
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		SwingUtilities.invokeLater(() ->{
			new drawImageDemoA().setVisible(true);
		});
	}
	
	class drawImageDemoA_Panel extends JPanel{
		Image image = new ImageIcon("color.png").getImage();
		
		drawImageDemoA_Panel(){}
		
		@Override
		protected void paintComponent(Graphics g) {
			// TODO Auto-generated method stub
			super.paintComponent(g);
			Graphics2D g2 = (Graphics2D)g;
			g2.drawImage(image, 0, 0, image.getWidth(this)/3, image.getHeight(this)/3, 0, 0, image.getWidth(this)/3, image.getHeight(this)/3, this);
			g2.drawImage(image, image.getWidth(this)/3, 0, image.getWidth(this)/3+image.getWidth(this)/3, image.getHeight(this)/3, 
					image.getWidth(this)/3, 0, image.getWidth(this)/3+image.getWidth(this)/3, image.getHeight(this)/3, this);
			g2.drawImage(image, image.getWidth(this)/3+image.getWidth(this)/3, 0, image.getWidth(this)/3+image.getWidth(this)/3+image.getWidth(this)/3, image.getHeight(this)/3, 
					 image.getWidth(this)/3+image.getWidth(this)/3, 0, image.getWidth(this)/3+image.getWidth(this)/3+image.getWidth(this)/3, image.getHeight(this)/3, this);
		}
		
	}

}

这个方法很适合在需要实时缩放图片或者显示大图片局部的场景中或者翻转图片,比如游戏角色运动时碰见障碍物改变运动方向等等场景中使用,不过要留意异步加载可能会带来的延迟问题。 

 

 

 

多视几何_计算一副图像上的点在另一福图像上的对应点 功能说明: 输入: 图像i上的点m, 图像点m在该图像坐标系下的深度, 图像i到图像j之间的变换 Tji 输出: 图像j上与图像m对应的点m’ 图示: 实现: def get_correspondence_v(self, point_u, d_u, Tji): """ find correspondence point_v in frame j for point_u in frame i Args: point_u ( 阅读详情

相关推荐

从专利库到Zemax:一个6mm定焦镜头从零到交付的完整设计流程(含CodeV转换技巧)

本文详细介绍了6mm定焦镜头从专利库检索到最终交付的全流程设计,重点解析了CodeV与Zemax工具链的无缝衔接技巧。通过实际案例展示规格定义、专利筛选、结构适配、非球面优化等关键步骤,帮助光学设计工程师提升设计效率和制造良率。特别包含CodeV转换Zemax的实用技巧,适用于机器视觉和安防镜头开发。

weixin_42561040的博客 161

java drawimage()方法

<br />图像使用的支持分布于java.applet, java.awt, 和 java.awt.image 包中。每一个图像都用一个 java.awt.Image 对象表示。除了Image 类外,java.awt 包提供了其它的基本的图像支持,例如Graphics 类的 drawImage 方法,Toolkit 对象的getImage 方法以及MediaTracker 类。在java.applet包中, Applet 类的getImage 方法使得可以很容易的使用URL加载图像。最后,jav

Hectorhua的专栏 3万+

使用Hyper-V使用下载下来的macOS安装引导安装macos

然后关闭工具返回安装界面选择第二个reinstall,选择119g那个硬盘。我的资源上传了:macOS Monterey on Hyper-V.7z。设置固件的启动顺序,引导安装盘放到第一位,mac安装110g放第二。选择disk utility格式化那个110g。下载解压的macos引导挂载到虚拟硬盘。其他设置安全禁用,检查禁用,集成都选中。新建一个虚拟硬盘装mac,110g。

viviliving的专栏 3023

java中方法drawImage()的参数详细解释

java中方法drawImage()的参数详细解释作者:朝寒雨晚来风 http://blog.sina.com.cn/s/blog_5e8cd822010138wy.html public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver o

wuxinliulei的专栏 1万+

告别裸机SPI!用HAL库和CubeMX重新玩转STM32与MAX6675温度传感器

本文详细介绍了如何利用STM32CubeMX和HAL库高效驱动MAX6675温度传感器,实现稳定可靠的热电偶温度监测系统。通过图形化配置SPI接口和封装专用驱动函数,开发者可以快速构建嵌入式温度测量方案,适用于工业控制、物联网设备等多种应用场景。

weixin_42525632的博客 234

告别OpenAI API调用:手把手在本地CPU/GPU上部署fast-whisper中文语音识别模型

本文详细指导如何在本地CPU/GPU上部署fast-whisper中文语音识别模型,摆脱对OpenAI API的依赖。从环境准备、模型获取与优化,到CPU/GPU环境的具体部署步骤和性能优化技巧,全面覆盖本地化语音识别的实现方案,帮助开发者提升效率并保障数据隐私。

weixin_29988907的博客 306

java的drawimage_canvas中的drawImage

一、在canvas画布中如何加载图片---用drawImage( )方法drawImage用法的三种情况:1、在画布指定位置定义图像ctx.drawImage(img,x,y);注:此时画布上显示的图片大小是图片的默认大小2、在画布上定位图像,并规定图像的宽度和高度:ctx.drawImage(img,x,y,width,height);3、剪切图像,并在画布上定位被剪切的部分:ctx.drawI...

weixin_39614094的博客 1359

深度强化学习 | 基于SAC算法的动态避障(ROS C++仿真)

本文介绍了基于SAC(软性演员-评论家)算法的机器人运动规划方法,通过PyTorch框架实现了端到端训练,并部署到Python和ROS C++中。实验结果显示,基于SAC算法的智能体在动态避障任务中表现良好,能实现从起点到终点的无碰撞导航。

FRIGIDWINTER的博客 8210

drawimage的用法 java_JAVA Graphics类中drawImage方法怎么用

展开全部Graphics有六个drawImage方法,我们用的最多的是publicabstractbooleandrawImage(Imageimg,intx,inty,intwidth,intheight,ImageObserverobserver);img是要加载的图像,x,y是指定绘制图像矩形左上角62616964757a686964616fe58685e5aeb...

weixin_39587010的博客 3918

超声波雷达探测车位及信号处理方法

在APA泊车中用到了超声波雷达,第一次接触,总结研究之。

周陽讀書 1229

【Python深度学习】做深度学习训练时,如果数据集太大,无法一次性加载进GPU,应该如何做?

方法核心思想优点缺点适用场景实现复杂度小批量训练(Mini-Batch Training)与数据加载器(DataLoader)将数据集划分为小批量,每次只加载一个小批量到GPU中进行训练。- 易于实现- 是深度学习的标准做法- 支持多进程加载- 内存可能成为瓶颈- 需要调整批量大小避免内存不足适用于大部分场景低数据分片与分布式训练(Data Sharding & Distributed Training)将数据集分片,每个GPU或节点处理其中一部分数据,分布式训练。

若北辰 1142

java Swing中方法drawImage()的参数详细解释

转自:https://www.cnblogs.com/azhqiang/p/4046072.html public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)绘制指定图像中已缩放到适合指定矩形内部的图像。 图像绘制在此图形上下文坐标空间的指定矩...

zj15939317693的博客 3272

大数据领域数据产品的交通运输行业应用

您是否经历过早高峰被堵在桥上,看着导航显示“前方5公里缓行”却无能为力?是否见过货车司机绕远路导致成本飙升?这些“交通痛点”的背后,是传统交通管理依赖经验决策的局限。本文将聚焦“大数据数据产品”这一核心工具,从技术原理到实际应用,全面解析它如何为交通运输行业“开天眼”,解决从城市拥堵到物流效率的一系列难题。本文将按照“问题引入→概念拆解→技术原理→实战案例→应用场景→未来趋势”的逻辑展开,用生活化比喻降低理解门槛,用代码和数学模型提升专业性,最终帮您建立“大数据+交通”的完整认知框架。交通数据。

操作系统内核探秘的博客 237

JavaSE Swing知识漏洞

1. Frame 的默认布局方式是 BorderLayout,所以如果要使用 setBounds 方法给组件设置具体位置时最好是 将默认的布局方式去掉,设置为null 例如: // this.setLayout(null); gamePanel.setVisible(true); pokerPanel.setVi...

134

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java图像在背景图移动_java – 在Swing中移动背景图像

你好我是编程新手,我们有一个项目.我们创建了一个简单的赛车游戏,背景动人,但我坚持我的代码,我不知道该怎么做.游戏开始时我需要一个移动的背景请有人帮助我.我在求T_T这是我的代码:public class Game extends JFrame implements KeyListener, ActionListener {Random s = new Random();int x = 0, y ...

weixin_36331058的博客 429

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java swing 图像翻转

方法确实可以用来实现图像的翻转效果。它允许你从原始图像中选择一个区域,并将其绘制到目标位置,同时还能进。

wu_android的博客 861

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JPanel加载图像的过程

要在JPanel上显示图像,调用了哪几个关键的类方法? 经过Debug,总结如下:无论选择按钮或菜单来触发事件,打开图像文件分别调用的方法依次是按钮或菜单的事件处理方法(ButtonOpen_mouseClicked())->自定义的加载方法(loadMyImage()) -> Graphics对象的drawImage()-> JPanel的imageUpdate() ->JPanel的rep

软件开发资料汇总 444

Java awt组件图片缩放练习

import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.event.ActionEvent; import ...

WiFi_PRO的博客 506

蹩脚的AWT/SWING GIF显示

很早就知道AWT/SWING组件可以直接通过 Graphics.drawImage() 来显示 GIF 动画, 但是一直不太做界面程序, 也就没有仔细用过. 现在做 WoW Traverser, 因为修改是异步提交到服务器, 所以有必要对正在提交的更改进行界面提示, 打算做个黄色alpha混和的渐变闪动效果来实现, 于是第一反应是做一个透明度不断变化的纯黄色GIF, 画到界面上去. 但是用GIMP...

歆渊技术博客 323

JAVA 设置背景图片

关键就就是这几句话 ImageIcon image = new ImageIcon(Main.class.getResource("back.png")); Image ii=image.getImage(); g.drawImage(ii, 0,0, this.getWidth(), this.getHeight(), null); package open.ui; import

1853

java将图片放到panel上_java – 将背景图像添加到Panel

我有一个JPanel,我想添加一个图像作为其背景.我怎样才能做到这一点 ?frame = new JFrame("Some frame");panel1 = new JPanel();panel1.setBorder(new EmptyBorder(5, 5, 5, 5));// NEED TO ADD AN IMAGE TO THIS PANELpanel1.setLayout(cardlayo...

weixin_39806679的博客 422

java基础 --- 简单的动画

java基础 --- 简单的动画这篇主要是写在Swing程序中如何制作动画的效果。我们都知道游戏动画主要是一些连续的图片通过快速播放,由于这些连续的图片变化不是很大,因此使我们的眼睛产生影象的残留,这样就能造成动画的效果。一般以每秒24帧的速度播放图片,那么我们就感觉不出图片的停顿。在GUI的程序中,我们可以通过线程来控制播放的速度,通过绘制不同的图片来产生动画的效果。比如:while(播

易课堂 1794

ImageIcon & Image - 在组件上打印图片

来源:http://blog.youkuaiyun.com/rexih/article/details/46461375 ImageIcon - javax.swing.*; Image - java.awt.*;//Image 是表示图形图像的所有类的超类 在组件上画图,使用的是Graphics中的drawImage方法 1.需要有一个封装图像数据

rentian1的博客 575

java 内部窗体类_【分享】让Java的窗体变得不规则和透明的技巧,以及一些相关建议...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼方案一:public class Test extends JFrame {Image image;public Test() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setUndecorated(true);setSize(400, 600);setLocationRelativeTo(null)...

weixin_32487755的博客 142

JAVA怎么在窗口画图像_java – 如何在另一个图像上绘制图像?

如果这是Swing,则在BufferedImage中绘制背景图像.使用Graphic的drawImage(…)方法在JComponent(例如JPanel的)paintComponent方法中显示此BufferedImage,然后在同一paintComponent方法中绘制更改的图像.不要忘记先调用super.paintComponent(…)方法.请注意,这个问题在这里和其他地方已被提出过很多问...

weixin_35516273的博客 419
上一篇: Java匿名内部类访问全局变量和局部变量的注意事项
下一篇: java swing 各种监听
wu_android
博客等级 码龄10年 94粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值