rss/atom 提要:是否可以调整非常大的图像的大小?
rss/atom feeds: is it possible to resize a very large image?
我使用 Google Apps 脚本构建了一个原子提要。这是一个只有一个条目的玩具示例:
function doGet() {
var d = new Date();
var feed="<?xml version='1.0' encoding='utf-8'?>\n";
feed=feed+"<feed xmlns='http://www.w3.org/2005/Atom'>\n";
feed=feed+" <title>test</title>\n";
feed=feed+" <id>http://www.google.com</id>\n";
feed=feed+" <updated>"+d.toISOString()+"</updated>\n";
var entry= " <entry>\n";
entry=entry+" <title>entry one</title>\n";
entry=entry+" <author><name>author</name></author>\n";
entry=entry+" <updated>" +d.toISOString()+ "</updated>\n";
entry=entry+" <id>http://www.google.com</id>\n";
entry=entry+" <content type='html'><![CDATA["
+"<p>lorem ipsum</p><img src='https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Mountaintop_of_Seehorn_%28Davos%29.jpg/1920px-Mountaintop_of_Seehorn_%28Davos%29.jpg' />" + "]]></content>\n";
entry=entry+" </entry>\n";
feed=feed+entry;
feed=feed+"</feed>";
Logger.log(feed)
return ContentService.createTextOutput(feed)
.setMimeType(ContentService.MimeType.ATOM);
}
我不知道我必须在我的 Feed 中插入哪些图像。
有时碰巧有一个非常大的图像,就像例子中的那个。在某些桌面或 Web 应用程序中阅读提要时,图像太大以至于超出屏幕范围。这对我来说是个烦人的问题。
有什么方法可以指示 Feed 调整(仅)大图像的大小,以便它们适合屏幕?
使用 CSS,我会使用 CSS 行
img {max-width: 1000px}
但我认为 RSS/Atom 提要不支持 CSS 语法(或者读取它们的应用程序可能不尊重它)。
使用html,我会使用以下代码:
<img width="1000" src="..." />
但这会重新缩放所有图像,迫使小图像变得非常大且不自然。
那么,有什么办法可以解决这个问题,即重新缩放大图?
在您的情况下,以下模式如何?
模式 1:
在此模式中,使用了 style="max-width: 1000px"
的内部 CSS。
<img style="max-width: 1000px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Mountaintop_of_Seehorn_%28Davos%29.jpg/1920px-Mountaintop_of_Seehorn_%28Davos%29.jpg" />
模式二:
在这个模式中,使用了width="1000"
。在这种情况下,使用脚本。
var url = "https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Mountaintop_of_Seehorn_%28Davos%29.jpg/1920px-Mountaintop_of_Seehorn_%28Davos%29.jpg";
var blob = UrlFetchApp.fetch(url).getBlob();
var {width, height} = ImgApp.getSize(blob);
var maxWidth = 1000;
var maxHeight = 1000;
var res = width > maxWidth || height > maxHeight ? `<img width="1000" src="${url}" />` : `<img src="${url}" />`;
console.log(res)
在这种情况下,为了从 blob 中检索图像大小,使用了 ImgApp
的 Google Apps 脚本库。所以,请安装这个库。 Ref
在此示例脚本中,如果 maxWidth
或 maxHeight
超过 1000 像素,则使用 width="1000"
。
我使用 Google Apps 脚本构建了一个原子提要。这是一个只有一个条目的玩具示例:
function doGet() {
var d = new Date();
var feed="<?xml version='1.0' encoding='utf-8'?>\n";
feed=feed+"<feed xmlns='http://www.w3.org/2005/Atom'>\n";
feed=feed+" <title>test</title>\n";
feed=feed+" <id>http://www.google.com</id>\n";
feed=feed+" <updated>"+d.toISOString()+"</updated>\n";
var entry= " <entry>\n";
entry=entry+" <title>entry one</title>\n";
entry=entry+" <author><name>author</name></author>\n";
entry=entry+" <updated>" +d.toISOString()+ "</updated>\n";
entry=entry+" <id>http://www.google.com</id>\n";
entry=entry+" <content type='html'><![CDATA["
+"<p>lorem ipsum</p><img src='https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Mountaintop_of_Seehorn_%28Davos%29.jpg/1920px-Mountaintop_of_Seehorn_%28Davos%29.jpg' />" + "]]></content>\n";
entry=entry+" </entry>\n";
feed=feed+entry;
feed=feed+"</feed>";
Logger.log(feed)
return ContentService.createTextOutput(feed)
.setMimeType(ContentService.MimeType.ATOM);
}
我不知道我必须在我的 Feed 中插入哪些图像。 有时碰巧有一个非常大的图像,就像例子中的那个。在某些桌面或 Web 应用程序中阅读提要时,图像太大以至于超出屏幕范围。这对我来说是个烦人的问题。
有什么方法可以指示 Feed 调整(仅)大图像的大小,以便它们适合屏幕?
使用 CSS,我会使用 CSS 行
img {max-width: 1000px}
但我认为 RSS/Atom 提要不支持 CSS 语法(或者读取它们的应用程序可能不尊重它)。
使用html,我会使用以下代码:
<img width="1000" src="..." />
但这会重新缩放所有图像,迫使小图像变得非常大且不自然。
那么,有什么办法可以解决这个问题,即重新缩放大图?
在您的情况下,以下模式如何?
模式 1:
在此模式中,使用了 style="max-width: 1000px"
的内部 CSS。
<img style="max-width: 1000px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Mountaintop_of_Seehorn_%28Davos%29.jpg/1920px-Mountaintop_of_Seehorn_%28Davos%29.jpg" />
模式二:
在这个模式中,使用了width="1000"
。在这种情况下,使用脚本。
var url = "https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Mountaintop_of_Seehorn_%28Davos%29.jpg/1920px-Mountaintop_of_Seehorn_%28Davos%29.jpg";
var blob = UrlFetchApp.fetch(url).getBlob();
var {width, height} = ImgApp.getSize(blob);
var maxWidth = 1000;
var maxHeight = 1000;
var res = width > maxWidth || height > maxHeight ? `<img width="1000" src="${url}" />` : `<img src="${url}" />`;
console.log(res)
在这种情况下,为了从 blob 中检索图像大小,使用了
ImgApp
的 Google Apps 脚本库。所以,请安装这个库。 Ref在此示例脚本中,如果
maxWidth
或maxHeight
超过 1000 像素,则使用width="1000"
。