Deep Zoom Aspect Ratio Возвращает неправильное значение - PullRequest
1 голос
/ 18 февраля 2011

My MultiScaleImage возвращает соотношение сторон 1, когда изображение имеет размер 2000x1500 png.Что еще более странно, это то, что метаданные xml показывают 1.33 в теге соотношения сторон, но имеют высоту и ширину 1.

Какого черта я здесь упускаю?

Спасибо за любую помощь!

Метаданные:

<Metadata version="1">
  <AspectRatio>1.33333333333333</AspectRatio>
  <Image>
    <FileName>C:\Documents and Settings\asmith\Desktop\Temp\DZComposer\Testing1\Source Images\2000x1500 sample image.png</FileName>
    <x>0</x>
    <y>0</y>
    <Width>1</Width>
    <Height>1</Height>
    <ZOrder>1</ZOrder>
    <Tag />
  </Image>
</Metadata>

Файл dzc_output.xml также согласен с этим:

<Collection MaxLevel="8" TileSize="256" Format="jpg" NextItemId="1" ServerFormat="Default" xmlns="http://schemas.microsoft.com/deepzoom/2009">
  <Items>
    <I Id="0" N="0" Source="dzc_output_images/2000x1500%20sample%20image.xml">
      <Size Width="2000" Height="1500" />
      <Viewport Width="1" X="-0" Y="-0" />
    </I>
  </Items>
</Collection>

Декларация MSI:

<MultiScaleImage 
  x:Name="msi" Grid.Column="1" Grid.Row="1" Width="720" Height="540"
  MouseMove="msi_MouseMove"
  MouseLeftButtonUp="msi_MouseLeftButtonUp">
</MultiScaleImage>

Выходные свойства: (в зависимости от движения мыши msi)

Ширина: 720

Высота: 540

Соотношение: 1

Ширина / соотношение сторон: 720

ЛогическийX: 0,55555555556

логический Y: 0,37361111111

логический X * ширина: 400

логический Y * ширина: 269

необработанный X: 400

Raw Y: 269

Происхождение области просмотра: 0,0

Ширина области просмотра: 1

Кодовое поле, заполняющее выходные данные свойства:

private void msi_MouseMove(object sender, MouseEventArgs e)
{
  txtWidth.Text = msi.Width.ToString();
  txtHeight.Text = msi.Height.ToString();
  txtAspectRatio.Text = msi.AspectRatio.ToString();
  txtWidthDivAR.Text = (msi.Width / msi.AspectRatio).ToString();

  Point pLogical = msi.ElementToLogicalPoint(e.GetPosition(msi));
  txtMsiX.Text = pLogical.X.ToString();
  txtMsiY.Text = pLogical.Y.ToString();
  txtLogicYxW.Text = (pLogical.Y * msi.Width).ToString();
  txtLogicXxW.Text = (pLogical.X * msi.Width).ToString();

  Point pRaw = e.GetPosition(msi);
  txtRawX.Text = pRaw.X.ToString();
  txtRawY.Text = pRaw.Y.ToString();

  txtVPO.Text = msi.ViewportOrigin.ToString();
  txtVPW.Text = msi.ViewportWidth.ToString();
}

1 Ответ

0 голосов
/ 05 декабря 2011

Ширина и высота dzc_output.xml - это исходный размер изображения в пикселях, а соотношение сторон в метаданных - это ширина и высота MultiScaleImage в целом.Ширина и высота изображения в метаданных логичны размеру мультикадра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...