从 url 处理加载图像时出现错误图像数据错误
bad image data error when loading image from url processing
我有一段代码可以获取 flickr 的图像 url,现在我希望将来自这些 url 的图像保存在一个数组中,以便我以后可以使用它们。但我不断收到以下错误:
文件https://www.flickr.com/photos/7851888@N08/22115289859包含错误的图像数据,或者可能不是图像
查看我的代码:
在代码中将是一条注释,以显示我认为是哪一行产生了错误。
PImage[] images;
int imageIndex;
XML xml;
String tag_mode = "all";
String words[];
PImage[] displayImages;
int amount = 500;
void setup() {
size(50, 50);
String lines[] = loadStrings("text.txt");
words = split(lines[0], " ");
displayImages = new PImage[amount];
for (int k = 0; k<words.length; k++) {
String query = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=MYKEY&tags="+ words[k] + "&sort=relevance&extras=url_o&tag_mode="+ tag_mode +"format=rest";
xml = loadXML(query);
XML[] children = xml.getChildren("photos");
if (children.length > 0) {
XML[] childPhoto = children[0].getChildren("photo");
// println(childPhoto);
if (childPhoto.length > 0) {
for (int i = 0; i < 1; i++) {
String id = childPhoto[i].getString("id");
String title = childPhoto[i].getString("title");
String user = childPhoto[i].getString("owner");
String url = "https://www.flickr.com/photos/"+user+"/"+id;
println(url);
println("=====================");
displayImages[i] = loadImage(url, "jpg"); // here is probably the error
println(displayImages.length);
}
}
}
}
textAlign(CENTER, CENTER);
smooth();
}
void draw() {
}
您提供的 url 不是图片的 URL。这是 flickr 网页的 URL。您必须提取实际图像 URL,而不仅仅是页面 URL.
例如,这是 URL 您要:https://www.flickr.com/photos/7851888@N08/22115289859
那是 页面,不是 图片。这就是您收到错误的原因:处理不知道如何从页面创建图像。
该页面恰好包含一张图片,但 Processing 不够智能,无法识别。对于它的价值,该图像的 url 是这样的:https://c2.staticflickr.com/6/5826/22115289859_91944c93cb_b.jpg
您必须在页面上找到 图像 url。它可能在 xml 结构中的某个地方。
我有一段代码可以获取 flickr 的图像 url,现在我希望将来自这些 url 的图像保存在一个数组中,以便我以后可以使用它们。但我不断收到以下错误:
文件https://www.flickr.com/photos/7851888@N08/22115289859包含错误的图像数据,或者可能不是图像
查看我的代码: 在代码中将是一条注释,以显示我认为是哪一行产生了错误。
PImage[] images;
int imageIndex;
XML xml;
String tag_mode = "all";
String words[];
PImage[] displayImages;
int amount = 500;
void setup() {
size(50, 50);
String lines[] = loadStrings("text.txt");
words = split(lines[0], " ");
displayImages = new PImage[amount];
for (int k = 0; k<words.length; k++) {
String query = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=MYKEY&tags="+ words[k] + "&sort=relevance&extras=url_o&tag_mode="+ tag_mode +"format=rest";
xml = loadXML(query);
XML[] children = xml.getChildren("photos");
if (children.length > 0) {
XML[] childPhoto = children[0].getChildren("photo");
// println(childPhoto);
if (childPhoto.length > 0) {
for (int i = 0; i < 1; i++) {
String id = childPhoto[i].getString("id");
String title = childPhoto[i].getString("title");
String user = childPhoto[i].getString("owner");
String url = "https://www.flickr.com/photos/"+user+"/"+id;
println(url);
println("=====================");
displayImages[i] = loadImage(url, "jpg"); // here is probably the error
println(displayImages.length);
}
}
}
}
textAlign(CENTER, CENTER);
smooth();
}
void draw() {
}
您提供的 url 不是图片的 URL。这是 flickr 网页的 URL。您必须提取实际图像 URL,而不仅仅是页面 URL.
例如,这是 URL 您要:https://www.flickr.com/photos/7851888@N08/22115289859
那是 页面,不是 图片。这就是您收到错误的原因:处理不知道如何从页面创建图像。
该页面恰好包含一张图片,但 Processing 不够智能,无法识别。对于它的价值,该图像的 url 是这样的:https://c2.staticflickr.com/6/5826/22115289859_91944c93cb_b.jpg
您必须在页面上找到 图像 url。它可能在 xml 结构中的某个地方。