gitextract_jlmm829s/ ├── .gitignore ├── .idea/ │ ├── .name │ ├── AndroidProjectSystem.xml │ ├── artifacts/ │ │ ├── img.xml │ │ ├── sampe_kmp.xml │ │ ├── sample_kmp.xml │ │ ├── sample_kmp_jvm.xml │ │ ├── scale_image_viewer.xml │ │ ├── scale_image_viewer_jvm.xml │ │ ├── scale_sampling_decoder.xml │ │ ├── scale_sampling_decoder_jvm.xml │ │ ├── scale_sampling_decoder_kmp.xml │ │ ├── scale_zoomable_view.xml │ │ ├── scale_zoomable_view_js.xml │ │ ├── scale_zoomable_view_jvm.xml │ │ ├── scale_zoomable_view_wasm_js.xml │ │ └── shared.xml │ ├── compiler.xml │ ├── deploymentTargetDropDown.xml │ ├── deploymentTargetSelector.xml │ ├── gradle.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── kotlinc.xml │ ├── migrations.xml │ ├── misc.xml │ ├── runConfigurations.xml │ ├── vcs.xml │ └── xcode.xml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build.gradle.kts ├── buildSrc/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ └── scale/ │ ├── hierarchyTemplate.kt │ └── util.kt ├── doc/ │ ├── assemble_dokka.sh │ ├── change_index_path.py │ ├── copy_root_doc.sh │ ├── deploy_docs.sh │ ├── docs/ │ │ ├── getting_started.md │ │ ├── image_pager.md │ │ ├── image_previewer.md │ │ ├── image_viewer.md │ │ ├── previewer.md │ │ ├── sampling_decoder.md │ │ ├── zoomable_pager.md │ │ └── zoomable_view.md │ ├── mkdocs.yml │ └── run_doc_server.sh ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── sample-android/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── jvziyaoyao/ │ │ └── image/ │ │ └── viewer/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jvziyaoyao/ │ │ │ └── scale/ │ │ │ └── sample/ │ │ │ ├── base/ │ │ │ │ ├── BaseActivity.kt │ │ │ │ └── BasePermission.kt │ │ │ ├── page/ │ │ │ │ ├── DecoderActivity.kt │ │ │ │ ├── DuplicateActivity.kt │ │ │ │ ├── GalleryActivity.kt │ │ │ │ ├── HomeActivity.kt │ │ │ │ ├── HugeActivity.kt │ │ │ │ ├── NormalActivity.kt │ │ │ │ ├── PicturesActivity.kt │ │ │ │ ├── PreviewerActivity.kt │ │ │ │ ├── TransformActivity.kt │ │ │ │ └── ZoomableActivity.kt │ │ │ └── ui/ │ │ │ ├── component/ │ │ │ │ ├── ImageLoader.kt │ │ │ │ └── Layout.kt │ │ │ └── theme/ │ │ │ ├── Color.kt │ │ │ ├── Layout.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_dark_bg.xml │ │ │ ├── ic_empty_image.xml │ │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ ├── values-night/ │ │ │ └── themes.xml │ │ ├── values-v27/ │ │ │ └── themes.xml │ │ └── xml/ │ │ └── network_security_config.xml │ └── test/ │ └── java/ │ └── com/ │ └── jvziyaoyao/ │ └── image/ │ └── viewer/ │ └── ExampleUnitTest.kt ├── sample-ios/ │ ├── iosSample/ │ │ ├── Assets.xcassets/ │ │ │ ├── AccentColor.colorset/ │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── ContentView.swift │ │ ├── Preview Content/ │ │ │ └── Preview Assets.xcassets/ │ │ │ └── Contents.json │ │ ├── component/ │ │ │ └── ComposeView.swift │ │ ├── iosSampleApp.swift │ │ └── page/ │ │ ├── HomeViewController.swift │ │ └── NavigationPageView.swift │ ├── iosSample.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata/ │ │ │ └── jvziyaoyao.xcuserdatad/ │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── xcschemes/ │ │ │ └── xcschememanagement.plist │ │ └── xcuserdata/ │ │ └── jvziyaoyao.xcuserdatad/ │ │ └── xcschemes/ │ │ ├── iosSample.xcscheme │ │ └── xcschememanagement.plist │ ├── iosSampleTests/ │ │ └── iosSampleTests.swift │ └── iosSampleUITests/ │ ├── iosSampleUITests.swift │ └── iosSampleUITestsLaunchTests.swift ├── sample-kmp/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── jvziyaoyao/ │ │ └── scale/ │ │ └── sample/ │ │ └── base/ │ │ └── BaseMathod.android.kt │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── jvziyaoyao/ │ │ └── scale/ │ │ └── sample/ │ │ ├── base/ │ │ │ └── BaseMathod.kt │ │ ├── page/ │ │ │ ├── Decoder.kt │ │ │ ├── Duplicate.kt │ │ │ ├── Gallery.kt │ │ │ ├── Home.kt │ │ │ ├── Huge.kt │ │ │ ├── Normal.kt │ │ │ ├── Previewer.kt │ │ │ ├── Transform.kt │ │ │ └── Zoomable.kt │ │ ├── sample/ │ │ │ ├── ImagePagerSample.kt │ │ │ ├── ImagePreviewerSample.kt │ │ │ ├── ImageViewerSample.kt │ │ │ ├── PreviewerSample.kt │ │ │ ├── SamplingDecoderSample.kt │ │ │ ├── ZoomablePagerSample.kt │ │ │ └── ZoomableViewSample.kt │ │ └── ui/ │ │ ├── component/ │ │ │ ├── ImageLoader.kt │ │ │ └── ScaleGrid.kt │ │ └── theme/ │ │ ├── Layout.kt │ │ └── Theme.kt │ └── iosMain/ │ └── kotlin/ │ └── com/ │ └── jvziyaoyao/ │ └── scale/ │ └── sample/ │ ├── ViewController.kt │ └── base/ │ └── BaseMathod.ios.kt ├── scale-image-viewer/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── gradle.properties │ └── src/ │ └── commonMain/ │ └── kotlin/ │ └── com/ │ └── jvziyaoyao/ │ └── scale/ │ └── image/ │ ├── pager/ │ │ └── ImagePager.kt │ ├── previewer/ │ │ ├── ImagePreviewer.kt │ │ └── TransformImageView.kt │ └── viewer/ │ └── ImageViewer.kt ├── scale-image-viewer-classic/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── consumer-rules.pro │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── jvziyaoyao/ │ │ └── scale/ │ │ └── image/ │ │ └── classic/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── origeek/ │ │ └── imageViewer/ │ │ ├── gallery/ │ │ │ └── ImageGallery.kt │ │ ├── previewer/ │ │ │ ├── ImagePreviewer.kt │ │ │ ├── ImageTransform.kt │ │ │ ├── ImageViewerContainer.kt │ │ │ ├── PreviewerPagerState.kt │ │ │ ├── PreviewerTransformState.kt │ │ │ └── PreviewerVerticalDragState.kt │ │ ├── util/ │ │ │ └── Ticket.kt │ │ └── viewer/ │ │ ├── ImageComposeCanvas.kt │ │ ├── ImageComposeOrigin.kt │ │ └── ImageViewer.kt │ └── test/ │ └── java/ │ └── com/ │ └── jvziyaoyao/ │ └── scale/ │ └── image/ │ └── classic/ │ └── ExampleUnitTest.kt ├── scale-sampling-decoder/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── gradle.properties │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── jvziyaoyao/ │ │ └── scale/ │ │ └── image/ │ │ └── sampling/ │ │ └── RegionDecoder.android.kt │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── jvziyaoyao/ │ │ └── scale/ │ │ └── image/ │ │ └── sampling/ │ │ ├── BlockingDeque.kt │ │ ├── RegionDecoder.kt │ │ ├── SamplingCanvas.kt │ │ ├── SamplingDecoder.kt │ │ └── SamplingProcessor.kt │ └── nonAndroidMain/ │ └── kotlin/ │ └── com/ │ └── jvziyaoyao/ │ └── scale/ │ └── image/ │ └── sampling/ │ └── RegionDecoder.nonAndroid.kt ├── scale-zoomable-view/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── gradle.properties │ └── src/ │ └── commonMain/ │ └── kotlin/ │ └── com/ │ └── jvziyaoyao/ │ └── scale/ │ └── zoomable/ │ ├── pager/ │ │ ├── Pager.kt │ │ └── ZoomablePager.kt │ ├── previewer/ │ │ ├── DraggablePreviewer.kt │ │ ├── PopupPreviewer.kt │ │ ├── Previewer.kt │ │ ├── TransformItem.kt │ │ └── TransformPreviewer.kt │ ├── util/ │ │ ├── TextUtil.kt │ │ └── TimeUtil.kt │ └── zoomable/ │ ├── ZoomableGesture.kt │ ├── ZoomableState.kt │ └── ZoomableView.kt └── settings.gradle.kts