-
![]()
+
@@ -147,7 +164,9 @@ import JSZip from 'jszip'
import UploadDrop from '@/components/common/UploadDrop.vue'
import ErrorAlert from '@/components/common/ErrorAlert.vue'
import HistoryPanel from '@/components/common/HistoryPanel.vue'
+import AppImageViewer from '@/components/common/AppImageViewer.vue'
import { useHistory } from '@/composables/useHistory'
+import { useImageViewer } from '@/composables/useImageViewer'
import { downloadBlob } from '@/composables/useDownload'
import { dataUrlToBlob, formatBytes } from '@/utils'
import {
@@ -198,6 +217,10 @@ const sourceInfo = ref<{ name: string; width: number; height: number; size: numb
/** 历史记录:存「文件名 | 参数摘要」,点击可恢复转换参数 */
const history = useHistory('image-to-ico')
+/** 预览图放大查看(各尺寸 PNG DataURL 成组) */
+const { visible: viewerVisible, index: viewerIndex, images: viewerImages, open: openViewer } = useImageViewer()
+const previewUrls = computed(() => result.value?.previews.map((p) => p.url) ?? [])
+
/** 编码方式对应的说明文案 */
const modeHint = computed(() => {
if (mode.value === 'bmp') return 'BMP 兼容性最好,但 128/256 尺寸体积会明显偏大'
diff --git a/src/views/ocr/OcrView.vue b/src/views/ocr/OcrView.vue
index fdb9868..aa22d53 100644
--- a/src/views/ocr/OcrView.vue
+++ b/src/views/ocr/OcrView.vue
@@ -7,7 +7,14 @@
-
+
@@ -56,6 +66,8 @@ import ErrorAlert from '@/components/common/ErrorAlert.vue'
import CopyButton from '@/components/common/CopyButton.vue'
import HistoryPanel from '@/components/common/HistoryPanel.vue'
import { useHistory } from '@/composables/useHistory'
+import { useImageViewer } from '@/composables/useImageViewer'
+import AppImageViewer from '@/components/common/AppImageViewer.vue'
import { downloadText } from '@/composables/useDownload'
import { genFilename } from '@/utils'
@@ -72,6 +84,9 @@ type WorkerInstance = Awaited>
const files = ref([])
const file = ref(null)
const previewUrl = ref('')
+
+/** 待识别图放大预览(TDesign ImageViewer) */
+const { visible: viewerVisible, index: viewerIndex, images: viewerImages, open: openViewer } = useImageViewer()
const busy = ref(false)
const progress = ref(0)
const progressLabel = ref('')
diff --git a/src/views/placeholder-image/PlaceholderImageView.vue b/src/views/placeholder-image/PlaceholderImageView.vue
index a902f4a..7409b76 100644
--- a/src/views/placeholder-image/PlaceholderImageView.vue
+++ b/src/views/placeholder-image/PlaceholderImageView.vue
@@ -5,7 +5,7 @@
-
+
@@ -62,6 +65,8 @@ import { computed, ref, watch } from 'vue'
import CopyButton from '@/components/common/CopyButton.vue'
import HistoryPanel from '@/components/common/HistoryPanel.vue'
import { useHistory } from '@/composables/useHistory'
+import { useImageViewer } from '@/composables/useImageViewer'
+import AppImageViewer from '@/components/common/AppImageViewer.vue'
import { downloadDataUrl } from '@/composables/useDownload'
interface PlaceholderParams {
@@ -77,6 +82,13 @@ const history = useHistory('placeholder-image')
const canvasRef = ref(null)
const width = ref(400)
const height = ref(300)
+
+/** 点击画布放大预览(把当前画布导出为 PNG 后交给 ImageViewer) */
+const { visible: viewerVisible, index: viewerIndex, images: viewerImages, open: openViewer } = useImageViewer()
+function previewCanvas() {
+ const canvas = canvasRef.value
+ if (canvas) openViewer([canvas.toDataURL('image/png')])
+}
const bgColor = ref('#667eea')
const textColor = ref('#ffffff')
const text = ref('400 x 300')
diff --git a/src/views/qrcode/QrcodeView.vue b/src/views/qrcode/QrcodeView.vue
index 43a9786..557bc7d 100644
--- a/src/views/qrcode/QrcodeView.vue
+++ b/src/views/qrcode/QrcodeView.vue
@@ -35,7 +35,13 @@
-
![生成的二维码]()
+
@@ -90,6 +99,8 @@ import CopyButton from '@/components/common/CopyButton.vue'
import DownloadButton from '@/components/common/DownloadButton.vue'
import HistoryPanel from '@/components/common/HistoryPanel.vue'
import { useHistory } from '@/composables/useHistory'
+import { useImageViewer } from '@/composables/useImageViewer'
+import AppImageViewer from '@/components/common/AppImageViewer.vue'
import { dataUrlToBlob } from '@/utils'
const tab = ref('generate')
@@ -107,6 +118,9 @@ const text = ref('')
const size = ref(256)
const level = ref('M')
const dark = ref('#000000')
+
+/** 二维码放大预览(TDesign ImageViewer) */
+const { visible: viewerVisible, index: viewerIndex, images: viewerImages, open: openViewer } = useImageViewer()
const light = ref('#ffffff')
const genBusy = ref(false)
const genError = ref('')