[SL2 B2] Beta2 이전 시대의 DeepZoom 데이터를 위한 심폐소생술

Silverlight/Lecture 2008.06.07 21:14

CPR for DeepZoom Data of Silverlight 2 Beta1 era.


서론

Beta2가 릴리즈 되고나니 보이시던 DeepZoom Data가 보이시지 않으십니까?
새 DeepZoom Composer로 다시 Export를 하려고 했는데 원본이미지가 없으십니까?
걱정하지 마십시오! 다음과 같은 방법으로 예전 딥줌이미지를 재활용 하실 수 있습니다. :)

이 포스트는 원본이 없어져서 새로운 DeepZoom Composer로 다시 Export 하실 수 없는 분이나,
이미 대량의 이미지를 생성해 놓은 상태여서 재활용하고 싶으신 분에게 유익합니다.

주의. Composition 방식으로 Export된 데이터에 대한 변환 팁입니다.
(Collection에 대한 변환 팁이 아닙니다.)


데이터 변환

사용자 삽입 이미지

Step1. 새폴더나 원래 폴더에 dzc_output_files 폴더를 생성합니다.
Step2. 각 레벨의 이미지가 저장되어 있는 레벨 폴더들(그림의 예를 들어 0~12)을 dzc_output_files 폴더로 복사합니다.
Step3. info.xml의 데이터를 dzc_output.xml로 변환합니다.

Step3는 변환이라기 보다 dzc_output.xml 파일 내용이 초간단 하므로,
다음의 기본형에 붉은색 글자 부분을 info.xml 파일의 내용을 참고하여 수정해서 쓰는 것을
권해드립니다.
Overlap 같은 경우는 값을 정하기가 상당히 애매합니다.

<?xml version="1.0" encoding="UTF-8"?>
<Image TileSize="513" Overlap="2" Format="jpg" xmlns="http://schemas.microsoft.com/deepzoom/2008">
<Size Width="2496" Height="1664"/>
<DisplayRects>
<DisplayRect MinLevel="0" MaxLevel="12">
<Rect X="0" Y="0" Width="2496" Height="1664"/>
</DisplayRect>
</DisplayRects>
</Image>

dzc_output.xml 파일

변환해야하는 데이터가 많을 때는 이 과정을 자동화하시면 되겠죠?
어떤 영웅이 나와서 Converter를 곧 제공하지 않을까 생각합니다.


코드 수정

마지막으로, 만약 MultiScaleImage의 Source를 XAML이 아닌,
비하인드 코드에서 동적으로 할당해 주고 계시다면... (현실적으로 그렇게 많이 하고 계시죠)

Breaking Change에 언급된 다음과 같은 코드 수정이 필요합니다.

Beta 1

[C#]

msi.Source = new System.Uri("images/info.bin");

 

Beta 2

[C#]

msi.Source
= new
DeepZoomImageTileSource(new System.Uri("images/dzc_output.xml"));

(단, 여기서 msi는 MultiScaleImage의 인스턴스입니다.)


xml 파일과 폴더명에 대해서

공도씨가 궁금해 하셔서 확인해 본 결과
위에서 언급한 dzc_output.xml과 dzc_output_files란 이름은 얼마든지 다른 이름을 사용할
수 있습니다.

즉 xml 파일의 이름을 hugeflow.xml이라고 하면,
MultiscaleImage는 자동으로 hugeflow_files란 폴더에서 이미지를 찾습니다.


자, 이것으로 끝.



설정

트랙백

댓글