平铺一张图像

原创 2012年03月24日 13:57:28

package swing;

import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.JComponent;
import javax.swing.JFrame;

/**
 * 平铺一张图像
 */
public class ImageTest {
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   @Override
   public void run() {
    ImageFrame frame = new ImageFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
   }
  });
 }
}

class ImageFrame extends JFrame {
 public ImageFrame() {
  this.setTitle("ImageFrame");
  this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
  
  ImageComponent component = new ImageComponent();
  this.add(component);
 }
 
 public static final int DEFAULT_WIDTH = 300;
 public static final int DEFAULT_HEIGHT = 200;
}

class ImageComponent extends JComponent {
 public ImageComponent() {
  try {
   //读取图像
   image = ImageIO.read(new File(fileName));
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 @Override
 public void paintComponent(Graphics g) {
  if(null == image) {
   return;
  }
  
  //得到图像的宽和高
  int imageWidth = image.getWidth(this);
  int imageHeight = image.getHeight(this);
  
  //画图该图像
  g.drawImage(image, 0, 0, null);
  
  for(int i=0; i*imageWidth<this.getWidth(); i++) {
   for(int j=0; j*imageHeight<this.getHeight(); j++) {
    if(i + j > 0) {
     /**
      * 复制一个区域
      * 0, 0表示原始区域左上角的x和y的坐标
      * imageWidth, imageHeight表示原始区域的宽和高
      * i*imageWidth, j*imageHeight表示原始区域到目标区域的水平和垂直距离
      */
     g.copyArea(0, 0, imageWidth, imageHeight, i*imageWidth, j*imageHeight);
    }
   }
  }
 }

 private Image image;
 private String fileName = "c:/ball.gif";
}

ios:关于图片平铺

1、 有的时候我们需要将一张图片平铺在View上当做背景。 以实现滚动页面时让背景也跟随移动。(例如苹果iBook首页背景的书架) 其实实现起来很简单。 代码如下: ...
  • ouyangtianhan
  • ouyangtianhan
  • 2013年12月19日 10:50
  • 10264

Android 图像平铺

drawable文件下
  • echome33
  • echome33
  • 2014年04月27日 10:29
  • 406

awesome:linux下的平铺式桌面

终于对悬浮式桌面无爱,一怒之下换了平铺式桌面
  • u011616820
  • u011616820
  • 2016年09月19日 15:51
  • 261

图像处理笔记(7)

空域图像增强          图像增强是为了增强图像中用户感兴趣的某些特征。在一般情况下为了得到一个满意的图像处理结果,需要根据所要达到的处理目标和原图像的实际情况采取一系列处理方法,这些处理过程...
  • shphonetown
  • shphonetown
  • 2013年11月18日 18:09
  • 2143

OPENCV图像处理基础(一)读取一张图片

基于OPENCV基础图像处理(一)读取一张图片作为一名coder,在学习新的编程语言时总是基本会按照以下步骤来入门:Hello World ->Base operation -> do somethi...
  • chenpidaxia
  • chenpidaxia
  • 2016年03月12日 18:43
  • 1473

html 图像映射(一个图像多个连接)

以前就见过那种导航地图,点击地图的不同省份分别跳到不同的连接,现在用html实现一下,简单的。 图像映射是指一个图像可以建立多个连接,就是在图像上面定义多个区域,每个区域连接到不同的地址。 ...
  • hwt0101
  • hwt0101
  • 2016年06月28日 20:00
  • 1594

opencv把一个图像copy到另一个图像中

把一个图片添加到另一个图片中#include #include #include using namespace std; int main(int argc, char* argv[]) { ...
  • swj110119
  • swj110119
  • 2016年03月22日 19:31
  • 3197

【iOS】随机三角形平铺布局算法

你是否已经厌倦了iOS里默认给出的那些方方正正规规矩矩的陈列? 本篇给出一种随机三角形平铺布局的算法设计和实现。 这种布局在规矩与随机之间做了折中,使其看上去有新鲜感又不会很乱。 本次实现重点在于布局...
  • lotusiki
  • lotusiki
  • 2014年08月24日 22:22
  • 2178

android 图片水平重复平铺(repeat x)

《=用来重复显示的图 1.最简单方式 创建wave_repeat.xml xml version="1.0" encoding="utf-8"?> bitmap xmlns:a...
  • linsen618
  • linsen618
  • 2014年11月10日 22:29
  • 2581

cocos2dx--纹理平铺

使用cocos2d-x的时候,有时候我们需要一场重复纹理的大图,比如某个有很多花纹的背景,花纹都是完全一样的,这个时候用一张很大的图片就比较浪费了,正确的做法应该是只做一个花纹的图片,然后利用coco...
  • majianfei1023
  • majianfei1023
  • 2016年04月07日 18:42
  • 2444
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:平铺一张图像
举报原因:
原因补充:

(最多只允许输入30个字)