2014-09-09 1 views
0

Мне нужно знать размер места назначения изображения до того, как imageresizer действительно выполнит переразмер. И я не хочу открывать файл изображения.Знайте полученный размер изображения перед выполнением изменения размера в Imageresizer

У меня есть исходный размер изображения и параметры imageresizer.

Я хочу написать IMG тег так:

<img src="/files/rb45_45667.jpg?height=150&quality=90" width="XXX" height="YYY"> 

Я попытался с ImageState

var imagestate = new ImageState(new ResizeSettings("height=150;quality=90"), new Size(1000,500), true); 
imagestate.destSize = PolygonMath.RoundPoints(imagestate.layout.GetBoundingBox().Size); 

, но это не будет работать, потому что я думаю, что я должен выполнять все защищенные методы ImageBuilder Layout:

protected override RequestedAction Layout(ImageState s) { 
    if (base.Layout(s) == RequestedAction.Cancel) return RequestedAction.Cancel; 
    FlipExistingPoints(s); //Not implemented 
    LayoutImage(s); 
    PostLayoutImage(s); 
    LayoutPadding(s); 
    PostLayoutPadding(s); 
    LayoutBorder(s); 
    PostLayoutBorder(s); 
    LayoutEffects(s); 
    PostLayoutEffects(s); 
    LayoutMargin(s); 
    PostLayoutMargin(s); 
    LayoutRotate(s); 
    PostLayoutRotate(s); 
    LayoutNormalize(s); 
    PostLayoutNormalize(s); 
    LayoutRound(s); 
    PostLayoutRound(s); 
    EndLayout(s); 
    return RequestedAction.None; 
} 

Но это невозможно без открытия ИНГ файл изображения ...

В ImageState документации они говорят:

Инкапсулирует состояние изображения изменения размера. Может использоваться для имитации изменения размера, а также для его выполнения.

Но я не знаю, как это сделать.

ответ

2

Я нахожу простой способ сделать это.

Я не знаю, если это правильный способ сделать это, но это работает:

ImageBuilder.Current.GetFinalSize(ImageSize, new ResizeSettings(parameters)); 
+1

Это точно правильный способ сделать это. –

 Смежные вопросы

  • Нет связанных вопросов^_^