`

applet绘制纹理图

阅读更多

 其效果如下图:

import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;

public class BufferedImageTest extends Applet
{
	
	private static final long serialVersionUID = 1L;
	//一个BufferedImage,还有它的宽和高
	private BufferedImage image;
	private final int BI_WIDTH = 100;
	private final int BI_HEIGHT = 100;

	//用来生成随机颜色和屏幕位置
	private java.util.Random random;

	public void init()
	{
		random = new java.util.Random();

		//创建一个(BI_WIDTH*BI_HEIGHT)的缓冲图像
		image = new BufferedImage(BI_WIDTH, BI_HEIGHT,
				BufferedImage.TYPE_INT_BGR);

		//为BufferedImage创建一个Graphics2D容器。记住,它和Applet的
		//Graphics2D没有什么关系
		Graphics2D bi_g2d = image.createGraphics();

		//我们将在BufferedImage上绘制一些条纹
		//条纹的宽和高分别是图像宽和高的十分之一
		final int stripWidth = BI_WIDTH / 10;
		final int stripHeight = BI_HEIGHT / 10;

		//用随机颜色绘制垂直的条纹
		bi_g2d.setPaint(new Color(random.nextInt()));

		int x = stripWidth / 2;
		while (x < BI_WIDTH)
		{
			bi_g2d.fill(new Rectangle(x, 0, stripWidth, BI_HEIGHT));
			x += 2 * stripWidth;
		}

		//给条纹设置一个透明通道
		bi_g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
				0.7f));

		//使用随机颜色绘制水平的条纹
		bi_g2d.setPaint(new Color(random.nextInt()));
		int y = stripHeight / 2;
		while (y < BI_HEIGHT)
		{
			bi_g2d.fill(new Rectangle(0, y, BI_WIDTH, stripHeight));
			y += 2 * stripHeight;
		}

		//在图像的周围呈现一个深色不透明的外框
		bi_g2d.setStroke(new BasicStroke(2.0f));
		bi_g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
		bi_g2d.setPaint(Color.black);
		bi_g2d.draw(new Rectangle(0, 0, BI_WIDTH, BI_HEIGHT));
	}

	public void paint(Graphics g)
	{
		//将g转换,以获得一个可用的Graphics2D对象
		Graphics2D g2d = (Graphics2D) g;

		//在随机的位置上画一串图像
		for (int i = 0; i < 20; i++)
		{
			g2d.drawImage(image, AffineTransform.getTranslateInstance(random.nextInt()% getSize().getWidth(), random.nextInt()% getSize().getHeight()), this);
		}
	}
}

 

 

  • 大小: 4.6 KB
分享到:
评论

相关推荐

    applet 光照效果

    - 不平滑表面(Bump Mapping)是实现光照效果的一种技术,它通过改变表面纹理的法线来模拟表面的微小不规则,使原本平坦的表面看起来有凹凸感,进而影响光照的反射和阴影。 3. **光源滤镜**: - 光源滤镜可以...

    Java程序设计实践教程PPT教案学习.pptx

    然而,`Graphics`对象也有一些限制,比如不能绘制复杂图形、虚线、宽度可变的线条,也不能使用纹理或渐变色填充。 2. **Graphics图形类**: `Graphics`类是所有图形上下文的抽象基类,它允许在组件和离屏图像上...

    Java6程序设计实践教程ch.pptx

    它不支持原始图形以外的高级图形绘制,比如无法绘制虚线或宽度可变的线条,也不能填充纹理或渐变色。这意味着如果需要更复杂的图形效果,可能需要使用其他库,如Java2D或者第三方图形库。 接下来,教程会介绍Java的...

    java图片处理,每个文件实现了一种特效

    在图像处理中,这种技术可以用于创建无缝纹理或在低内存设备上处理大型图像。 7. `HistToGrub.java` - 可能是一个将图像直方图转换为灰度图像的程序。直方图均衡化是改善图像对比度的一种常见方法,通过调整像素值...

    单元学习Java2D.pdf

    文档中提到了Java2D API中的绘制技术,例如绘制基本形状(Rectangle、Ellipse)、渐变填充(GradientPaint)、纹理填充(TexturePaint)、颜色转换(Color)、仿射变换(AffineTransform)等。仿射变换特别重要,它...

    Java 图形与动画编程实例(PDG)1

    学习Java 3D,你需要理解基本的3D概念,如坐标系统、向量、矩阵、几何对象、光照和纹理等。此外,还要熟悉Java 3D API的使用,包括Scene Graph的构建和渲染。 5. **事件处理和定时器**: 在创建动画时,事件处理和...

    JAVA3D学习资料

    - **线框图绘制**: 通过绘制线框图来构建人物形状。 - **汽车建模**: - **基本构造**: 提供构建汽车模型的基础步骤。 #### 总结 Java3D为开发者提供了强大的工具集来构建复杂的3D应用程序。无论是对于希望创建...

    [Java典型应用彻查1000例:图形与网络游戏开发]

    import java.applet.Applet; public class SimpleAWTExample extends Applet { public void paint(Graphics g) { g.drawString("Hello, AWT!", 50, 50); } } ``` ##### Swing 示例 ```java import javax.swing....

    Java2dDemo

    `TextureChooser.java`可能是用于选择和管理纹理的类,Java2D支持纹理映射,可以将图像应用到几何形状上,提供丰富的视觉效果。 `Java2DemoApplet.java`表明这个程序也支持作为Web应用运行,它是Java Applet的形式...

    java图像分割方法集合

    而在处理具有复杂纹理和颜色变化的图像时,则可能需要更高级的算法,如基于区域生长或基于深度学习的方法。 此外,为了提高图像分割的效率和准确性,还可以采取以下策略进行优化: - 对原始图像进行预处理,比如...

    vtk java wrap 显示数据

    VTK数据通常存储在如.vtk或.vtp等特定格式的文件中,这些文件包含了关于几何形状、颜色、纹理等信息。在`vtkImporter.java`中,我们可能会看到如下步骤: 1. 导入必要的VTK库:首先,你需要引入VTK的Java库,例如`...

    java画矩形

    给定的代码示例展示了一个简单的Java Applet,它使用AWT的`Graphics`类来绘制一个矩形。然而,如果我们要使用OpenGL,代码将显著不同,因为OpenGL提供了更高级的图形渲染能力,包括纹理映射、光照效果等。 #### ...

    Java程序设计(雍俊海)ch13

    包括字体设置和纹理管理,可以通过`Graphics2D`类等进行高级图形绘制,例如线、形状、文本等。 4. 计算机动画:Java提供了一系列的机制来实现动态图形,如帧管理和定时器,使得开发者能够创建流畅的动画效果。通常...

    java 图像处理资源 api

    JAI 是一套面向对象的接口集合,它支持一种简单而高级的编程模型,允许开发者在 Java 应用程序和 Applet 中轻松地操作图像。 - **主要特性:** - **高性能和平台独立性:** JAI 提供了一个高性能的、跨平台的可...

    unity中文文字教程合并后

    - **start()**:在用户回到包含Applet的页面时调用。 - **stop()**:在线程结束前调用,释放资源。 #### 五、游戏动画与绘图 - **动画播放**: ```plaintext while (!进程) { // 绘制当前帧 // 暂停特定时间...

    SimpleTexture.rar_Java编程_Java_

    10. **集成Web应用**:Java 3D可以嵌入到Java Applet或Java Web Start应用中,使得3D内容可以在浏览器上展示。 总的来说,“SimpleTexture.java”可能是实现了一个简单的3D场景,演示了如何加载纹理并将其应用到...

    h_JAVA 2应用编程150例.rar

    实例6 在窗口中显示背景图 16 实例7 在窗体中绘制图形 18 实例8 利用JNI实现窗口特效 20 实例9 文件选择对话框 24 实例10 改变字体 26 实例11 应用JTree 28 实例12 应用JTable 30 实例13 记事本 32 实例14 使用...

Global site tag (gtag.js) - Google Analytics