如何在Blogger上显示更高分辨率的缩略图

时间:2017-08-04 07:22:47

标签: blogger

此时我一直在使用public class Emoticon { public Emoticon(string key, Bitmap bitmap) { Key = key; Bitmap = bitmap; BitmapImage = bitmap.ToBitmapImage(); } public string Key { get; } public Bitmap Bitmap { get; } public BitmapImage BitmapImage { get; } } public class EmoticonRichTextBox : RichTextBox { private readonly List<Emoticon> _emoticons; public EmoticonRichTextBox() { _emoticons = new List<Emoticon> { new Emoticon(":D", Properties.Resources.grinning_face) }; } protected override void OnTextChanged(TextChangedEventArgs e) { base.OnTextChanged(e); Dispatcher.InvokeAsync(Look); } private void Look() { const string keyword = ":D"; var text = new TextRange(Document.ContentStart, Document.ContentEnd); var current = text.Start.GetInsertionPosition(LogicalDirection.Forward); while (current != null) { var textInRun = current.GetTextInRun(LogicalDirection.Forward); if (!string.IsNullOrWhiteSpace(textInRun)) { var index = textInRun.IndexOf(keyword, StringComparison.Ordinal); if (index != -1) { var selectionStart = current.GetPositionAtOffset(index, LogicalDirection.Forward); if (selectionStart == null) continue; var selectionEnd = selectionStart.GetPositionAtOffset(keyword.Length, LogicalDirection.Forward); var selection = new TextRange(selectionStart, selectionEnd) { Text = string.Empty }; var emoticon = _emoticons.FirstOrDefault(x => x.Key.Equals(keyword)); if (emoticon == null) continue; var image = new System.Windows.Controls.Image { Source = emoticon.BitmapImage, Height = 18, Width = 18, Margin = new Thickness(0, 3, 0, 0) }; // inserts at the end of the line selection.Start?.Paragraph?.Inlines.Add(image); // doesn't work CaretPosition = CaretPosition.GetPositionAtOffset(1, LogicalDirection.Forward); } } current = current.GetNextContextPosition(LogicalDirection.Forward); } } } public static class BitmapExtensions { public static BitmapImage ToBitmapImage(this Bitmap bitmap) { using (var stream = new MemoryStream()) { bitmap.Save(stream, ImageFormat.Png); stream.Position = 0; var image = new BitmapImage(); image.BeginInit(); image.CacheOption = BitmapCacheOption.OnLoad; image.DecodePixelHeight = 18; image.DecodePixelWidth = 18; image.StreamSource = stream; image.EndInit(); image.Freeze(); return image; } } } 在我的主页上显示缩略图,该缩略图输出最初为移动浏览制作的72x72方形图像。然后我使用jquery将图像从72-c缩放到s300。我想知道是否有一种不同的方法来获取缩略图而不使用js。

Blogger发布的新模板集可以使用数据输出32,64,128和256像素的缩略图大小:post.featuredImage。如何将其应用于自定义模板?

1 个答案:

答案 0 :(得分:3)

利用resizeImage运算符在不使用JavaScript的情况下更改图像大小。代码看起来像 -

<img expr:src='resizeImage(data:post.thumbnailUrl, 1600)'/> 
  

resizeImage(imageUrl,newSize,optionalRatio)

     

resizeImage运算符有3个参数:

     

imageUrl - 可调整大小图片的原始网址。
newSize - 新的   图像的宽度
(可选)比率 - 宽度的整数比率   调整大小的图像的高度,例如“1:1”或“4:3”

     

注释

     

如果imageUrl参数不是可调整大小的图像,则为resizeImage   函数将返回原始imageUrl。
比率必须是整数   数字。
如果提供了比率,图像将被裁剪为那些   确切的尺寸。