简述Java图像倾斜方法及实例 原创

可以使用 graphics2D 类提供的 shear() 方法设置绘图的倾斜方向,从而使图像实现倾斜的效果。下面,我们一起来看一下它的使用方法和实例。

语法如下:

	shear(double shx,double shy)

shx:水平方向的倾斜量;

shy:垂直方向的倾斜量。

   实例:在窗体上绘制图像,使图像在水平方向实现倾斜效果。下面是具体代码:

public class TiltImage extends JFrame{
	private Image img;
	private MyCanvas canvasPanel = null;
	public TiltImage() {
		initialize();
	}
	//界面初始化方法
	private void initialize() {
		//获取图片资源的路径
		URL imgUrl = TiltImage.class.getResource("cow.jpg");
		img = Toolkit.getDefaultToolkit().getImage(imgUrl);
		canvasPanel = new MyCanvas();
		this.setBounds(100,100,400,300);
		add(canvasPanel);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setTitle("图片倾斜");
	}
	//主方法
	public static void main(String[] args) {

		new TiltImage().setVisible(true);
	}
	//画板
	class MyCanvas extends JPanel{
		public void paint(Graphics g){
			Graphics2D g2 = (Graphics2D)g;
		g2.shear(0.3,0);
		g2.drawImage(img,0,0,300,200,this);
		}
	}
}

总结

在绘制倾斜图像时,最主要的要注意获取图片资源的路径一定要准确,否则不会显示。

以上就是本文的全部内容,希望对大家有所帮助!

(0)

相关推荐

  • java数字图像处理基础使用imageio写图像文件示例

    一个BufferedImage的像素数据储存在Raster中,ColorModel里面储存颜色空间,类型等信息,当前Java只支持一下三种图像格式- JPG,PNG,GIF,如何向让Java支持其它格式,首先要 完成Java中的图像读写接口,然后打成jar,加上启动参数- Xbootclasspath/pnewimageformatIO.jar即可. Java中如何读写一个图像文件,使用ImageIO对象即可.读图像文件的代码如下: 复制代码 代码如下: File file = new File

  • Java图像之自定义角度旋转(实例)

    图像的旋转需要调用 Graphics2D 类的rotate()方法,该方法将根据指定的弧度旋转图像. 语法如下: rotate(double theta) 其中, theta 是指旋转的弧度. 说明:该方法只接受旋转的弧度作为参数,可以使用 Math 类的 toRadians()方法将角度转换为弧度. toRadians()方法接受角度值作为参数,返回值是转换完毕的弧度值. 实例代码: /** *//** * 旋转图片为指定角度 * * @param bufferedimage * 目标图像 *

  • Java图像处理工具类

    本工具类的功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 复制代码 代码如下: package net.kitbox.util; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Re

  • 使用Java进行图像处理的一些基础操作

    图像是由一组像素构成,用二进制形式保存的图片.java语言支持GIF.JPEG和BMP这3种主要图像文件格式.java语言的图像处理功能被封装在Image类中. 图像载入和输出 在java程序中,图像也是对象,所以载入图像时,先要声明Image对象,然后,利用getImage()方法把Image对象与图像文件联系起来.载入图像文件的方法有两个: Image getImage(URL url),url指明图像所在位置和文件名. Image getImage(URL url,String name)

  • Java应用程序中创建图像

    合成图像 您不必从文件中读取所有的图像 - 您可以创建自己的图像.要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中.它还支持各种存储像素数据的方法:使用或不使用 alpha 通道.不同种类的颜色模型以及颜色组件的各种精确度.ColorModel 类提供一种灵活的方法定义各种颜色模型,以和 BufferedImage 对象一起使用.为了理解颜色模型工作的基本知识,我们将只使用一个缺省的颜色模型,其颜

  • Java图像处理教程之正片叠底效果的实现

    前言 本文主要给大家介绍了关于利用Java如何实现正片叠底效果的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 正片叠底,在Photoshop中是一种混合模式,简单的说就是可以让2个图层的内容融合起来. PS中最佳展示用例 融合的计算公式其实非常简单,就是 A*B/255.(A.B是指的图层A和图层B) 再解释一下就是: A图层中的红色通道和B图层中的红色通道所对应的每一个像素的灰阶值相乘,再被255除.得到一个新的红色通道. 蓝色与绿色通道的操作也是一样的. 实现方法

  • Java实现的图像查看器完整实例

    本文实例讲述了Java实现的图像查看器.分享给大家供大家参考.具体如下: 1. MyCanvas.java: package PictureViewer; import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class MyCanvas extends Canvas implements ComponentListener{ private BufferedImage bi; private Im

  • 详解Java如何实现图像灰度化

    24位彩色图与8位灰度图 首先要先介绍一下24位彩色图像,在一个24位彩色图像中,每个像素由三个字节表示,通常表示为RGB.通常,许多24位彩色图像存储为32位图像,每个像素多余的字节存储为一个alpha值,表现有特殊影响的信息[1]. 在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值.亮度值),灰度范围为0-255[2].这样就得到一幅图片的灰度图. 几种灰度化的方法 1.分量法:使用RGB三个分量中

  • 举例解析Java的图像缓冲技术的使用

    当图像信息量较大,采用以上直接显示的方法,可能前面一部分显示后,显示后面一部分时,由于后面一部分还未从文件读出,使显示呈斑驳现象.为了提高显示效果,许多应用程序都采用图像缓冲技术,即先把图像完整装入内存,在缓冲区中绘制图像或图形,然后将缓冲区中绘制好的图像或图形一次性输出在屏幕上.缓冲技术不仅可以解决闪烁问题,并且由于在计算机内存中创建图像,程序可以对图像进行像素级处理,完成复杂的图像变换后再显示. [例]小应用程序程序演示图像缓冲显示技术.程序运行时,当鼠标在图像区域内按下时,图像会出现边框,

  • 简述Java图像倾斜方法及实例 原创

    可以使用 graphics2D 类提供的 shear() 方法设置绘图的倾斜方向,从而使图像实现倾斜的效果.下面,我们一起来看一下它的使用方法和实例. 语法如下: shear(double shx,double shy) shx:水平方向的倾斜量: shy:垂直方向的倾斜量.    实例:在窗体上绘制图像,使图像在水平方向实现倾斜效果.下面是具体代码: public class TiltImage extends JFrame{ private Image img; private MyCanv

  • java 中createStatement()方法的实例详解

    java 中createStatement()方法的实例详解 用缺省设置创建时,ResultSet 是一种只能访问一次(one-time-through).只能向前访问(forward-only)和只读的对象.您只能访问数据一次,如果再次需要该 数据,必须重新查询数据库. 然而,并不只有这一种方式.通过设置 Statement 对象上的参数,您可以控制它产生的 ResultSet.例如: ... Class.forName(driverName); db = DriverManager.getC

  • Java静态工厂方法的实例详解

     Java静态工厂方法的实例详解 什么是静态工厂方法 对于类而言,为了让使用者获取它自身的一个实例,最常用的方法就是提供一个公有的构造器. 当然,这里要介绍的是另一种方法--静态工厂方法,一个返回类的实例的静态方法. 举个例子,Boolean的一个将基本类型boolean转为封装类的方法,valueOf: public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); } 为什么要使用静态工厂方法 那么,我们为什么要使用

  • java合并list方法代码实例

    这篇文章主要介绍了java合并list方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法 方法一 List<Children> reduce = list.stream() .map(x ->

  • java虚拟机jvm方法区实例讲解

    和java堆一样,方法区是一块所有线程共享的内存区域,用于保存系统的类信息,类的信息有哪些呢.字段.方法.常量池.方法区也有一块内存区域所以方法区的内存大小,决定了系统可以包含多少个类,如果系统类太多,方法区内存不够肯定会导致方法区溢出,虚拟机同样会抛出内存溢出信息.(内存溢出后面相关文章给大家总结) jdk6和jdk7中,方法区可以理解为永久区(Perm).永久区可以使用参数-XX:PermSize和-XX:MaxPermSize制定.默认情况下-XX:MaxPermSize为64MB.如果你

  • JAVA对象clone方法代码实例解析

    1.Cloneable接口 这个接口一个方法都没有,但是要使用clone方法,就必须实现这个接口,否则抛出CloneNotSupportedException异常 2.clone方法的返回值 先附上两个类代码 package pojo; /** * @Author : ZGQ * @Date : 2020/3/11 22:12 * @Version : 1.0 */ public class Person implements Cloneable{ String name; int age; p

  • 浅谈Java变量赋值运算符及相关实例 原创

    Java程序中,需要进行大量的计算,所以要使用到运算符号,下面来给大家说明Java赋值运算符如何运用. 赋值运算符以符号"="表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方操作数.例如: int a = 100; 该表达式是将100赋值给变量 a .左方的操作数必须是一个变量 ,而右边的才做书则可以是任何表达式,包括变量(如 a .number).常量(123.'book').有效表达式(如55*66).         1:使用赋值运算符为变量赋

  • Java初始化List方法代码实例

    List指的是集合.<>是泛型,里面指定了这个集合中存放的是什么数据. 比如有一个学生类Student,Student里面包含了学生的一些信息.这样每一个Student对象就代表了一个学生.此时List<Student>就代表这个集合中存放了很多个学生对象,这个集合就像一个班级一样. 第一种 /** * 第一种方式 * 常规方式 */ @Test public void one(){ List<String> languages = new ArrayList<&

  • java金钱处理方法实例详解

    java金钱处理方法实例详解 在支付行业中,涉及到对金钱的处理比较多.比如分转化成元.费率计算.手续费计算等等. 1.分转化成元 /** * 单位换算:分->元 * * @param amount * 分 * @param scale * 保留小数点位数 * @return */ public static String fenToYuan(long amount, int scale) { return new BigDecimal(amount).divide(new BigDecimal(

  • Java反射之通过反射获取一个对象的方法信息(实例代码)

    以下代码为一个工具类 package com.imooc.reflect; import java.lang.reflect.Method; public class ClassUtil { public static void printClassMessage(Object obj){ //要获取类的信息,首先要获取类的类类型 Class c = obj.getClass();//传递的是哪个子类的对象,c就是该子类的类类型 //获取类的名称 System.out.println("类的名称

随机推荐