Contents
  1. 1. 如何用Processing玩坏图片(一)
    1. 1.1. 玩坏图片前要了解的知识
      1. 1.1.1. CreateImage()
      2. 1.1.2. Pimage
      3. 1.1.3. image()
      4. 1.1.4. imageMode()
      5. 1.1.5. loadImage()
      6. 1.1.6. requestImage()

昨天一个人很帅气去了趟魔都,虽然出了一点事情,然而人总算安全归来,东西也没有丢,算是皆大欢喜吧,最后说一句,LL大法好!

如何用Processing玩坏图片(一)

玩坏图片前要了解的知识

在大多数情况下,我们最好一开始在setup()中加载所有的图像。如果在 draw()中加载图像会极大的减慢Processing运行速度。图像不能在setup()之外被加载,除非他们在一个函数内部,并且那个函数已经在setup()后运行。

另外,文件可以从计算机的任何绝对路径进行加载(Unix和Linux的 / ,或者Windows中的驱动盘符),或者filename参数也可以是一个网络上的URL。

如果文件不可用或者发生错误,就会返回一个null值并且在消息控制台中显示一个错误信息。但是显示错误信息并不会使程序停止,如果使null值,也可能会在消息控制台中显示NullPointerExceptio(在你的代码没有返回null值的时候)。

CreateImage()

这个关键词用于创建一个新的PImage(用于存储图像的数据类型)。高级用户请注意,createImage()函数应该代替语法new PImage()

1
createImage(width, height, format) //format参数为RGB/ARGB/ALPHA(灰阶通道)

Pimage

Datatype for storing images. Processing can display .gif, .jpg, .tga, and .png images. Images may be displayed in 2D and 3D space.
(翔一样的翻译,直接引用官方文档)

1
2
3
4
PImage(width, height)
PImage(width, height, format)
PImage(width, height, format, factor)
PImage(img)

实例(用处也一般只有这种)

1
2
3
4
5
6
7
8
PImage photo;
void setup() {
size(100, 100);
photo = loadImage("laDefense.jpg");
}
void draw() {
image(photo, 0, 0);
}

image()

image()函数用于在窗口显示图像。

1
2
3
4
image(img, x, y)
image(img, x, y, width, height)
//在窗口显示图像,图片要放在目录“data”下
//支持GIF,JPEG,PNG,支持将图片直接拖入草稿窗口中

imageMode()

这个函数用于修改图像绘制所显示的原点。

1
mageMode(mode) //默认参数CORNER 可选CENTER CORNERS(右下)

loadImage()

加载图像到一个PImage类型的变量。

1
2
3
loadImage(filename);
loadImage(filename, extension);
//文件,图像类型,支持格式同上,返回类型为PImage

实例

1
2
3
4
5
6
7
8
9
10
PImage webImg;
void setup() {
String url = "http://processing.org/img/processing_cover";
// Load image from a web server
webImg = loadImage(url, "gif");
}
void draw() {
background(0);
image(webImg, 0, 0);
}

requestImage()

这个函数用于加载一个独立线程的图像,草稿不会冻结它,同时它在setup()中加载。

1
2
3
requestImage(filename);
requestImage(filename, extension);
//文件,图像类型,支持格式同上,返回类型为PImage

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PImage bigImage;
void setup() {
bigImage = requestImage("something.jpg");
}
void draw() {
if (bigImage.width == 0) {
// Image is not yet loaded
} else if (bigImage.width == -1) {
// This means an error occurred during image loading
} else {
// Image is ready to go, draw it
image(bigImage, 0, 0);
}
}
Contents
  1. 1. 如何用Processing玩坏图片(一)
    1. 1.1. 玩坏图片前要了解的知识
      1. 1.1.1. CreateImage()
      2. 1.1.2. Pimage
      3. 1.1.3. image()
      4. 1.1.4. imageMode()
      5. 1.1.5. loadImage()
      6. 1.1.6. requestImage()