java 常用API (Image)

RGB色彩模式是基于红、绿、蓝三原色光的叠加原理,用于表示几乎全部人类可见颜色的系统。在电脑中,RGB值的每个通道有256级亮度,共可组合出约1678万种颜色。网页颜色常用16进制代码表示,如#000000代表黑色,BufferedImage类用于在内存中存储图像数据,提供颜色处理和绘图功能。ImageIO类则用于读写图像文件。此外,Color和Font类分别用于定义颜色和字体样式。
摘要由CSDN通过智能技术生成

RGB

RGB色彩模式 RGB color mode
是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。

每像素颜色 16777216(256 * 256 * 256)种

因此这红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。

在电脑中,RGB的所谓“多少”就是指亮度并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2…直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。如同2000年到2010年共是11年一样。

按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。

电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。

红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调。

对一种颜色进行编码的方法统称为“颜色空间”或“色域

RGB1、RGB4、RGB8都是调色板类型的RGB格式

它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1(2色位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色)…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。

网页格式

由于网页(WEB)是基于计算机浏览器开发的媒体,所以颜色以光学颜色RGB(红、绿、蓝)为主。网页颜色是以16进制代码表示,一般格式为#DEFABC (字母范围从A-F,数字从0-9 );如黑色,在网页代码中便是:#000000(在css编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135与#113355表示同样的颜色。

RGB24

RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…

1、RenderedImage 接口

RenderedImage是一个通用接口,用于包含或能够以栅格的形式产生图像数据的对象。图像数据可以存储/生成为单个图像块或规则的图像块数组
在这里插入图片描述

RenderedImage的常用方法

2、BufferedImage

BufferedImage类、Image类、Graphics类
BufferedImage描述了一个具有可访问的图像数据缓冲区的Image。一个BufferedImage由一个ColorModel和一个光栅图像数据组成。
Image是一个抽象类,BufferedImage是其实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。

BufferedImage常用方法

public java.awt.Graphics getGraphics()
//这个方法返回一个Graphics2D,但这里是为了向后兼容。createGraphics更方便,因为它被声明为返回一个Graphics2D。

public Graphics2D createGraphics() 
//创建一个Graphics2D,它可以用来绘制到这个BufferedImage中。

ImageIO

一个包含静态方法的类,用于定位imagereader和imagewriter,并执行简单的编码和解码。

ImageIO常用方法

public static BufferedImage read(File input)
public static BufferedImage read(ImageInputStream stream)
public static BufferedImage read(InputStream input)
public static BufferedImage read(URL input)

public static boolean write(RenderedImage im,
                                String formatName,
                                File output)
public static boolean write(RenderedImage im,
                                String formatName,
                                ImageOutputStream output)
public static boolean write(RenderedImage im,
                                String formatName,
                                OutputStream output)
//使用支持给定格式的任意ImageWriter将图像写入OutputStream。
//该方法不会在写操作完成后关闭提供的OutputStream;如果需要,调用者负责关闭流。
//getusecache和gettcachedirectory的当前缓存设置将用于控制缓存

public static boolean getUseCache()
//返回当前由setUseCache设置的值,如果没有显式设置则返回true
//如果基于磁盘的缓存可以用于ImageInputStreams和ImageOutputStreams,则为true。

URL

Graphics 抽象类

Graphics类是所有图形上下文的抽象基类,它允许应用程序绘制到各种设备上的组件,以及屏幕外的图像。
封装了Java支持的基本呈现操作所需的状态信息。这个状态信息包括以下属性:
要在其上绘制的组件对象。
渲染和剪辑坐标的翻译原点。
当前的剪辑。
当前的颜色。
当前字体。
当前的逻辑像素操作函数(XOR或Paint)。
当前的XOR变换颜色(参见setXORMode)。

Graphics的生成

//BufferedImage中
public java.awt.Graphics getGraphics()

Graphics常用方法

public abstract void setColor(Color c)
//设置图形上下文的颜色
//使用此图形上下文的所有后续图形操作都使用此指定颜色。

public abstract void fillRect(int x, int y, int width, int height)
//填充指定的矩形。矩形的左右边分别为x和x +宽度- 1。上下边在y和y +高度- 1处。最终的矩形覆盖了
//一个区域宽度像素宽乘以高度像素高。矩形使用图形上下文的当前颜色填充

public abstract void drawString(String str, int x, int y)
//使用图形上下文的当前字体和颜色绘制指定字符串所给出的文本。最左边字符的基线位于
//这个图形上下文的坐标系统中的位置(x, y)

public abstract void setFont(Font font)
//将该图形上下文的字体设置为指定的字体。使用此图形上下文的所有后续文本操作都使用此字体。
//空参数将被忽略。


Color

Color类用于封装默认sRGB颜色空间中的颜色或由ColorSpace标识的任意颜色空间中的颜色。每一种颜色都有一个隐式alpha值1.0,或者在构造函数中有一个显式alpha值。alpha值定义了颜色的透明度,可以用范围为0.0 - 1.0的浮点值或0 - 255表示。alpha值为1.0或255表示该颜色完全不透明,alpha值为0或0.0表示该颜色完全透明。当使用显式alpha构建一个Color或获得color /alpha组件时,颜色组件不会被alpha组件预乘。

SRGB是一种通用色彩标准,由微软、HP等几个大公司制定的行业标准。sRGB代表了标准的红、绿、蓝,即CRT显示器、LCD显示器、投影机、打印机以及其他设备中色彩再现所使用的三个基本色素。
有了sRGB技术,用户无论在各种显示设备上观看图像,都可以确保得到统一的色彩。

Color的构造方法

public Color(int r, int g, int b)
//创建不透明的sRGB颜色,包含指定的红色、绿色和蓝色值,范围为(0 - 255)。渲染中使用的实际颜色取决于
//在给定的输出设备可用的颜色空间中找到最佳匹配。Alpha默认为255
Params:
r – the red component
g – the green component
b – the blue component


Font

public class Font implements java.io.Serializable

Font类位于java.awt包中

Font类表示字体,这些字体用于以可见的方式呈现文本。字体提供了将字符序列映射到符号序列以及在图形和组件对象上呈现符号序列所需的信息。

字体类型(例如宋体、仿宋、Times New Roman等)、字体风格(例如斜体字、加粗等)、以及字号大小。
(1)familyName是字体类型,例如宋体、仿宋、Times New Roman等;

(2)style是字体风格,例如斜体字、加粗等;

官方提供4种固定值,如下:

Font.PLAIN(普通)
Font.BOLD(加粗)
Font.ITALIC(斜体)
Font.BOLD+ Font.ITALIC(粗斜体)

(3)size是字体大小,其默认单位为pt(磅),数字越大、字就越大(例如12pt字比10pt的字要大)。

当设置好了字体样式后,可以使用public void setFont(Font font)方法将指定组件的字体样式更新。

该方法适用于任意组件,例如按钮JButton、标签JLabel、多行文本框JTextArea等。

Font的构造方法

public Font(String name, int style, int size)
//根据指定的名称、样式和大小创建新字体。


Font常用方法

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java提供了一种将HTML转换为图片的工具类-Java HTML转Image工具类。这个工具类的作用是将HTML代码转换为图片格式,方便在其他场景中使用,例如生成链接、缩略图、截图等。 Java HTML转Image工具类的实现原理是使用了Java的相关技术,如JavaFX或者AWT/Swing。具体实现步骤如下: 1. 解析HTML代码:首先需要将HTML代码解析为DOM树,可以使用Java HTML解析器(如Jsoup)来完成这一步骤。 2. 创建JavaFX或AWT/Swing画布:接下来,需要创建一个JavaFX或AWT/Swing的画布,用于渲染HTML内容。 3. 渲染HTML内容:将解析得到的DOM树渲染到画布上,可以使用JavaFX WebView(对应JavaFX画布)或者JEditorPane(对应AWT/Swing画布)来实现。 4. 截取画布内容:然后,根据需要,可以使用Java图形库提供的截图功能来截取画布上的内容。 5. 保存为图片:最后,将截取的内容保存为图片格式,可以使用Java图形库提供的图片处理功能来实现,例如ImageIO。 在实际应用中,可以将上述步骤封装为一个工具类,方便在其他地方使用。这样,只需要调用这个工具类的方法,传入HTML代码和图片保存路径,就可以将HTML转换为图片。 需要注意的是,Java HTML转Image工具类的实现原理和具体实现方式可能因不同的需求而有所差异。此外,HTML中的一些特殊功能(例如JavaScript、CSS动画等)可能在转换为图片时无法完全保留,需要根据具体情况进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值