正在处理 - 根据 jpg 尺寸调整大小 canvas
Processing - Resize canvas based on jpg dimensions
我有一个基本程序,其中库存图像构成了更大程序的背景 - 但许多图像彼此之间的尺寸略有不同。
我的初始代码加载背景图像并尝试根据图像尺寸设置 canvas 大小:
PImage bg;
void setup() {
bg = loadImage("102.jpg");
println(bg.width);
println(bg.height);
wWidth = bg.width;
wHeight = bg.height;
size(wWidth,wHeight);
}
void draw() {
background(bg);
}
我收到 'IllegalStateException' 错误
bg.width 和 bg.height 是 806 和 1229,当我分别包含 806 和 1229 而不是 wWidth 和 wHeight 时,我得到了我想要的输出 - 我需要以不同的方式声明 size() 吗?或者尝试通过处理将 jpg 文件调整为相同大小会更简单吗?
这在处理 2 中可行,但是 things changed in Processing 3: you simply need to use settings()
。
这是加载图像并将草图大小更改为图像尺寸的最小草图:
PImage img;
void settings(){
img = loadImage("https://processing.org/img/processing-web.png");
println(img.width, img.height);
size(img.width, img.height);
}
void setup(){
image(img, 0, 0);
}
你的代码应该是这样的:
PImage bg;
int wWidth;
int wHeight;
void settings(){
bg = loadImage("102.jpg");
println(bg.width);
println(bg.height);
wWidth = bg.width;
wHeight = bg.height;
size(wWidth, wHeight);
}
void setup() {
}
void draw() {
background(bg);
}
稍微简单一点的版本是:
PImage bg;
void settings(){
bg = loadImage("102.jpg");
println(bg.width);
println(bg.height);
size(bg.width, bg.height);
}
void setup() {
}
void draw() {
background(bg);
}
wWidth, wHeight
变量可能是多余的,因为 Processing 的 width,height
变量在 size()
被调用后存储相同的数据。
我有一个基本程序,其中库存图像构成了更大程序的背景 - 但许多图像彼此之间的尺寸略有不同。
我的初始代码加载背景图像并尝试根据图像尺寸设置 canvas 大小:
PImage bg;
void setup() {
bg = loadImage("102.jpg");
println(bg.width);
println(bg.height);
wWidth = bg.width;
wHeight = bg.height;
size(wWidth,wHeight);
}
void draw() {
background(bg);
}
我收到 'IllegalStateException' 错误 bg.width 和 bg.height 是 806 和 1229,当我分别包含 806 和 1229 而不是 wWidth 和 wHeight 时,我得到了我想要的输出 - 我需要以不同的方式声明 size() 吗?或者尝试通过处理将 jpg 文件调整为相同大小会更简单吗?
这在处理 2 中可行,但是 things changed in Processing 3: you simply need to use settings()
。
这是加载图像并将草图大小更改为图像尺寸的最小草图:
PImage img;
void settings(){
img = loadImage("https://processing.org/img/processing-web.png");
println(img.width, img.height);
size(img.width, img.height);
}
void setup(){
image(img, 0, 0);
}
你的代码应该是这样的:
PImage bg;
int wWidth;
int wHeight;
void settings(){
bg = loadImage("102.jpg");
println(bg.width);
println(bg.height);
wWidth = bg.width;
wHeight = bg.height;
size(wWidth, wHeight);
}
void setup() {
}
void draw() {
background(bg);
}
稍微简单一点的版本是:
PImage bg;
void settings(){
bg = loadImage("102.jpg");
println(bg.width);
println(bg.height);
size(bg.width, bg.height);
}
void setup() {
}
void draw() {
background(bg);
}
wWidth, wHeight
变量可能是多余的,因为 Processing 的 width,height
变量在 size()
被调用后存储相同的数据。