@jjlmoya/utils-converters 1.25.0 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/fr.ts +1 -1
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/it.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/sv.ts +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/avifAJpg/i18n/en.ts +164 -164
- package/src/tool/avifAJpg/i18n/es.ts +164 -164
- package/src/tool/avifAJpg/i18n/fr.ts +164 -164
- package/src/tool/avifAJpg/i18n/ja.ts +166 -166
- package/src/tool/avifAJpg/i18n/ko.ts +166 -166
- package/src/tool/avifAJpg/i18n/zh.ts +166 -166
- package/src/tool/avifAJpg/seo.astro +15 -15
- package/src/tool/avifAPng/i18n/en.ts +164 -164
- package/src/tool/avifAPng/i18n/es.ts +164 -164
- package/src/tool/avifAPng/i18n/fr.ts +164 -164
- package/src/tool/avifAPng/i18n/ja.ts +166 -166
- package/src/tool/avifAPng/i18n/ko.ts +166 -166
- package/src/tool/avifAPng/i18n/zh.ts +166 -166
- package/src/tool/avifAPng/seo.astro +15 -15
- package/src/tool/avifAWebp/i18n/en.ts +164 -164
- package/src/tool/avifAWebp/i18n/es.ts +164 -164
- package/src/tool/avifAWebp/i18n/fr.ts +164 -164
- package/src/tool/avifAWebp/i18n/ja.ts +166 -166
- package/src/tool/avifAWebp/i18n/ko.ts +166 -166
- package/src/tool/avifAWebp/i18n/zh.ts +166 -166
- package/src/tool/avifAWebp/seo.astro +15 -15
- package/src/tool/bmpAJpg/i18n/en.ts +164 -164
- package/src/tool/bmpAJpg/i18n/es.ts +164 -164
- package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
- package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
- package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
- package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
- package/src/tool/bmpAJpg/seo.astro +15 -15
- package/src/tool/bmpAPng/i18n/en.ts +164 -164
- package/src/tool/bmpAPng/i18n/es.ts +164 -164
- package/src/tool/bmpAPng/i18n/fr.ts +164 -164
- package/src/tool/bmpAPng/i18n/ja.ts +165 -165
- package/src/tool/bmpAPng/i18n/ko.ts +165 -165
- package/src/tool/bmpAPng/i18n/zh.ts +165 -165
- package/src/tool/bmpAPng/seo.astro +15 -15
- package/src/tool/bmpAWebp/i18n/en.ts +164 -164
- package/src/tool/bmpAWebp/i18n/es.ts +164 -164
- package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
- package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
- package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
- package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
- package/src/tool/bmpAWebp/seo.astro +15 -15
- package/src/tool/gifAJpg/i18n/en.ts +164 -164
- package/src/tool/gifAJpg/i18n/es.ts +164 -164
- package/src/tool/gifAJpg/i18n/fr.ts +164 -164
- package/src/tool/gifAJpg/i18n/ja.ts +166 -166
- package/src/tool/gifAJpg/i18n/ko.ts +166 -166
- package/src/tool/gifAJpg/i18n/zh.ts +166 -166
- package/src/tool/gifAJpg/seo.astro +15 -15
- package/src/tool/gifAPng/i18n/en.ts +164 -164
- package/src/tool/gifAPng/i18n/es.ts +164 -164
- package/src/tool/gifAPng/i18n/fr.ts +164 -164
- package/src/tool/gifAPng/i18n/ja.ts +166 -166
- package/src/tool/gifAPng/i18n/ko.ts +166 -166
- package/src/tool/gifAPng/i18n/zh.ts +166 -166
- package/src/tool/gifAPng/seo.astro +15 -15
- package/src/tool/gifAWebp/i18n/en.ts +164 -164
- package/src/tool/gifAWebp/i18n/es.ts +164 -164
- package/src/tool/gifAWebp/i18n/fr.ts +164 -164
- package/src/tool/gifAWebp/i18n/ja.ts +166 -166
- package/src/tool/gifAWebp/i18n/ko.ts +166 -166
- package/src/tool/gifAWebp/i18n/zh.ts +166 -166
- package/src/tool/gifAWebp/seo.astro +15 -15
- package/src/tool/imagenBase64/i18n/en.ts +154 -154
- package/src/tool/imagenBase64/i18n/es.ts +154 -154
- package/src/tool/imagenBase64/i18n/fr.ts +154 -154
- package/src/tool/imagenBase64/seo.astro +15 -15
- package/src/tool/jpgAIco/seo.astro +15 -15
- package/src/tool/jpgAPng/i18n/en.ts +164 -164
- package/src/tool/jpgAPng/i18n/es.ts +164 -164
- package/src/tool/jpgAPng/i18n/fr.ts +164 -164
- package/src/tool/jpgAPng/i18n/ja.ts +166 -166
- package/src/tool/jpgAPng/i18n/ko.ts +166 -166
- package/src/tool/jpgAPng/i18n/zh.ts +166 -166
- package/src/tool/jpgAPng/seo.astro +15 -15
- package/src/tool/jpgAWebp/i18n/en.ts +164 -164
- package/src/tool/jpgAWebp/i18n/es.ts +164 -164
- package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
- package/src/tool/jpgAWebp/seo.astro +15 -15
- package/src/tool/pngAIco/seo.astro +15 -15
- package/src/tool/pngAJpg/i18n/de.ts +21 -21
- package/src/tool/pngAJpg/i18n/es.ts +177 -177
- package/src/tool/pngAJpg/i18n/fr.ts +137 -137
- package/src/tool/pngAJpg/i18n/id.ts +89 -89
- package/src/tool/pngAJpg/i18n/it.ts +89 -89
- package/src/tool/pngAJpg/i18n/ko.ts +177 -177
- package/src/tool/pngAJpg/i18n/nl.ts +20 -20
- package/src/tool/pngAJpg/i18n/pl.ts +89 -89
- package/src/tool/pngAJpg/i18n/pt.ts +89 -89
- package/src/tool/pngAJpg/i18n/ru.ts +177 -177
- package/src/tool/pngAJpg/i18n/sv.ts +89 -89
- package/src/tool/pngAJpg/i18n/tr.ts +89 -89
- package/src/tool/pngAJpg/seo.astro +15 -15
- package/src/tool/pngAWebp/i18n/en.ts +164 -164
- package/src/tool/pngAWebp/i18n/es.ts +164 -164
- package/src/tool/pngAWebp/i18n/fr.ts +164 -164
- package/src/tool/pngAWebp/seo.astro +15 -15
- package/src/tool/svgAJpg/i18n/fr.ts +164 -164
- package/src/tool/svgAJpg/seo.astro +15 -15
- package/src/tool/svgAPng/i18n/fr.ts +164 -164
- package/src/tool/svgAPng/seo.astro +15 -15
- package/src/tool/webpAIco/seo.astro +15 -15
- package/src/tool/webpAJpg/seo.astro +15 -15
- package/src/tool/webpAPng/bibliography.ts +13 -13
- package/src/tool/webpAPng/i18n/de.ts +166 -166
- package/src/tool/webpAPng/i18n/es.ts +171 -171
- package/src/tool/webpAPng/i18n/fr.ts +166 -166
- package/src/tool/webpAPng/i18n/id.ts +166 -166
- package/src/tool/webpAPng/i18n/it.ts +166 -166
- package/src/tool/webpAPng/i18n/nl.ts +166 -166
- package/src/tool/webpAPng/i18n/pl.ts +166 -166
- package/src/tool/webpAPng/i18n/pt.ts +166 -166
- package/src/tool/webpAPng/i18n/ru.ts +166 -166
- package/src/tool/webpAPng/i18n/sv.ts +166 -166
- package/src/tool/webpAPng/i18n/tr.ts +167 -167
- package/src/tool/webpAPng/seo.astro +15 -15
|
@@ -1,168 +1,168 @@
|
|
|
1
1
|
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
-
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
4
|
-
import type { AvifAPngLocaleContent } from '../index';
|
|
5
|
-
|
|
6
|
-
const slug = 'avif-to-png-converter';
|
|
7
|
-
const title = '在线将 AVIF 转换为 PNG';
|
|
8
|
-
const description =
|
|
9
|
-
'在保持透明度的同时,将 AVIF 图像转换为 PNG。无需上传文件。在您的浏览器中完成本地处理。免费且无限制。';
|
|
10
|
-
|
|
11
|
-
const ui: ImageConverterUI = {
|
|
12
|
-
dragText: '拖拽 AVIF 文件...',
|
|
13
|
-
convertText: '立即将其转换为 PNG',
|
|
14
|
-
selectFiles: '选择文件',
|
|
15
|
-
processedFiles: '已处理文件',
|
|
16
|
-
downloadAll: '下载全部 (.zip)',
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
4
|
+
import type { AvifAPngLocaleContent } from '../index';
|
|
5
|
+
|
|
6
|
+
const slug = 'avif-to-png-converter';
|
|
7
|
+
const title = '在线将 AVIF 转换为 PNG';
|
|
8
|
+
const description =
|
|
9
|
+
'在保持透明度的同时,将 AVIF 图像转换为 PNG。无需上传文件。在您的浏览器中完成本地处理。免费且无限制。';
|
|
10
|
+
|
|
11
|
+
const ui: ImageConverterUI = {
|
|
12
|
+
dragText: '拖拽 AVIF 文件...',
|
|
13
|
+
convertText: '立即将其转换为 PNG',
|
|
14
|
+
selectFiles: '选择文件',
|
|
15
|
+
processedFiles: '已处理文件',
|
|
16
|
+
downloadAll: '下载全部 (.zip)',
|
|
17
17
|
pending: '等待中',
|
|
18
|
-
bibliographyTitle: '参考文献',
|
|
19
|
-
faqTitle: '常见问题',
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const faq: AvifAPngLocaleContent['faq'] = [
|
|
23
|
-
{
|
|
24
|
-
question: '为什么要将 AVIF 转换为 PNG?',
|
|
25
|
-
answer:
|
|
26
|
-
'AVIF 格式虽然压缩率极高,但在旧版本浏览器和经典编辑器中的兼容性有限。通过将 AVIF 转换为 PNG,您可以确保文件保留原始透明度,并且所有应用程序都能打开它。',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
question: '原始 AVIF 文件的透明度会被保留吗?',
|
|
30
|
-
answer:
|
|
31
|
-
'是的。与 JPG 会删除透明背景不同,在导出为 PNG 时,我们的转换器会完整保留 Alpha 通道。',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
question: '我的图像真的不会被上传到互联网吗?',
|
|
35
|
-
answer:
|
|
36
|
-
'绝对是真的。我们的转换器使用内部 JavaScript 引擎在您的设备上 100% 本地运行。',
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
const howTo: AvifAPngLocaleContent['howTo'] = [
|
|
41
|
-
{
|
|
42
|
-
name: '添加您的 AVIF 文件',
|
|
43
|
-
text: '您可以将其直接拖到指定区域,或使用按钮浏览计算机上的文件夹。',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: '即时处理',
|
|
47
|
-
text: '让 HTML5 处理器渲染图像;格式将在微秒内自动切换为 PNG。',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: '获取您的 PNG 文件',
|
|
51
|
-
text: '逐个下载转换后的图像,或通过 ZIP 按钮下载整个压缩包。',
|
|
52
|
-
},
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
const seo: AvifAPngLocaleContent['seo'] = [
|
|
56
|
-
{
|
|
57
|
-
type: 'title',
|
|
58
|
-
text: 'AVIF 转 PNG 转换器:从网页分发到专业编辑',
|
|
59
|
-
level: 2,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: 'paragraph',
|
|
63
|
-
html: 'AVIF 是在网页上分发图像的理想格式-小巧、高效且高质量。但是,当需要对这些图像进行编辑、修饰或在设计工具中处理时,AVIF 就成了障碍。Figma、Photoshop、Illustrator、Sketch 以及几乎所有的专业设计工具都期望接收 PNG 来进行透明度处理和无损编辑。将 AVIF 转换为 PNG 是连接网页分发世界与创意编辑世界之间的桥梁。',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
type: 'title',
|
|
67
|
-
text: 'AVIF vs PNG:分发 vs 编辑',
|
|
68
|
-
level: 3,
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
type: 'paragraph',
|
|
72
|
-
html: 'AVIF 作为分发格式脱颖而出:文件小、加载快、支持 Alpha 通道且视觉质量出色。然而,其工具生态系统有限。大多数设计软件无法直接导入 AVIF,这中断了创意工作流。尝试在 Figma 中打开 AVIF 或将其作为图层导入 Photoshop 根本行不通。',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: 'paragraph',
|
|
76
|
-
html: 'PNG 是数字设计的原生格式。凭借无损压缩、完整的 Alpha 通道支持以及与所有创意工具的通用兼容性,PNG 是首选的工作格式。当您需要缩放、修饰、导出为多种格式或进行图层化工作时,PNG 保证您在过程中不会丢失任何细节或像素。',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
type: 'title',
|
|
80
|
-
text: '对比:云端转换器 vs 我们的本地架构',
|
|
81
|
-
level: 3,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'comparative',
|
|
85
|
-
items: [
|
|
86
|
-
{
|
|
87
|
-
title: '云端转换器',
|
|
88
|
-
description: '将您的 AVIF 文件上传到远程服务器进行处理的工具。',
|
|
89
|
-
icon: 'mdi:cloud-upload',
|
|
90
|
-
pointIcon: 'mdi:close-circle-outline',
|
|
91
|
-
points: [
|
|
92
|
-
'您的设计图像传输到了第三方服务器',
|
|
93
|
-
'由于网络延迟带来的等待时间',
|
|
94
|
-
'Alpha 通道可能丢失或改变',
|
|
95
|
-
'大小限制导致批量转换困难',
|
|
96
|
-
],
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
title: '我们的本地架构',
|
|
100
|
-
description: '通过 Vanilla JS 技术和 Canvas API 在浏览器中直接处理。',
|
|
101
|
-
icon: 'mdi:laptop-mac',
|
|
102
|
-
highlight: true,
|
|
103
|
-
points: [
|
|
104
|
-
'完美还原并保留 Alpha 通道',
|
|
105
|
-
'即时转换,无数据传输',
|
|
106
|
-
'不设文件数量、大小或批量限制',
|
|
107
|
-
'为专有设计资产提供完全隐私保护',
|
|
108
|
-
],
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
type: 'title',
|
|
114
|
-
text: '带透明度的技术转换如何运行',
|
|
115
|
-
level: 3,
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
type: 'paragraph',
|
|
119
|
-
html: '现代浏览器凭借集成的 AV1 引擎原生支持 AVIF 解码。加载文件时,浏览器会在内存中对其进行解码,并保留所有 Alpha 通道信息。解码后的图像(包括其透明度)会以正确的合成模式绘制在 HTML5 <code>Canvas</code> 元素上,以保持 Alpha 通道。',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: 'paragraph',
|
|
123
|
-
html: '与导出为 JPG(会通过填充白色来破坏透明度)不同,通过 <code>toBlob(\'image/png\')</code> 导出为 PNG 会完整保留 Alpha 通道。结果是一个具有无损压缩的 PNG,它保留了原始 AVIF 的每一个像素、每一处半透明和每一处细微差别。',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'tip',
|
|
127
|
-
title: '任何设计工具必备的前提步骤',
|
|
128
|
-
html: '在将您的 AVIF 导入 Figma、Photoshop、Illustrator 或任何设计工具之前,请先将其转换为 PNG。这些应用程序无法直接读取 AVIF,但 PNG 在所有这些工具中都能原生运行,且能完美保留透明度和质量。',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
type: 'title',
|
|
132
|
-
text: '使用场景:您何时需要将 AVIF 转换为 PNG',
|
|
133
|
-
level: 3,
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: 'list',
|
|
137
|
-
icon: 'mdi:check-circle',
|
|
138
|
-
items: [
|
|
139
|
-
'导入到 Figma、Sketch、Adobe XD 或其他 UI 设计工具。',
|
|
140
|
-
'在 Photoshop、Affinity Photo 或 GIMP 中作为图层进行编辑,并保持透明度。',
|
|
141
|
-
'用作生成图标或精灵图(sprites)的源文件。',
|
|
142
|
-
'发送给使用标准设计软件的客户或合作者。',
|
|
143
|
-
'以无损编辑格式存档带有透明度的图像。',
|
|
144
|
-
],
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
type: 'title',
|
|
148
|
-
text: '结论:连接网页与设计的桥梁',
|
|
149
|
-
level: 3,
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
type: 'paragraph',
|
|
153
|
-
html: 'AVIF 和 PNG 是现代工作流中的完美拍档:AVIF 用于高效网页分发,PNG 用于设计工具内的编辑和协作。使用我们的转换器,两者之间的转换是即时的、私密的,且能保留每一个细节-这正是当您的视觉资产至关重要时所需要的。',
|
|
154
|
-
},
|
|
155
|
-
];
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
export const content: AvifAPngLocaleContent = {
|
|
159
|
-
slug,
|
|
160
|
-
title,
|
|
161
|
-
description,
|
|
162
|
-
ui,
|
|
163
|
-
seo,
|
|
164
|
-
faq,
|
|
165
|
-
bibliography,
|
|
166
|
-
howTo,
|
|
167
|
-
schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
|
|
168
|
-
};
|
|
18
|
+
bibliographyTitle: '参考文献',
|
|
19
|
+
faqTitle: '常见问题',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const faq: AvifAPngLocaleContent['faq'] = [
|
|
23
|
+
{
|
|
24
|
+
question: '为什么要将 AVIF 转换为 PNG?',
|
|
25
|
+
answer:
|
|
26
|
+
'AVIF 格式虽然压缩率极高,但在旧版本浏览器和经典编辑器中的兼容性有限。通过将 AVIF 转换为 PNG,您可以确保文件保留原始透明度,并且所有应用程序都能打开它。',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: '原始 AVIF 文件的透明度会被保留吗?',
|
|
30
|
+
answer:
|
|
31
|
+
'是的。与 JPG 会删除透明背景不同,在导出为 PNG 时,我们的转换器会完整保留 Alpha 通道。',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: '我的图像真的不会被上传到互联网吗?',
|
|
35
|
+
answer:
|
|
36
|
+
'绝对是真的。我们的转换器使用内部 JavaScript 引擎在您的设备上 100% 本地运行。',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
const howTo: AvifAPngLocaleContent['howTo'] = [
|
|
41
|
+
{
|
|
42
|
+
name: '添加您的 AVIF 文件',
|
|
43
|
+
text: '您可以将其直接拖到指定区域,或使用按钮浏览计算机上的文件夹。',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: '即时处理',
|
|
47
|
+
text: '让 HTML5 处理器渲染图像;格式将在微秒内自动切换为 PNG。',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: '获取您的 PNG 文件',
|
|
51
|
+
text: '逐个下载转换后的图像,或通过 ZIP 按钮下载整个压缩包。',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const seo: AvifAPngLocaleContent['seo'] = [
|
|
56
|
+
{
|
|
57
|
+
type: 'title',
|
|
58
|
+
text: 'AVIF 转 PNG 转换器:从网页分发到专业编辑',
|
|
59
|
+
level: 2,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'paragraph',
|
|
63
|
+
html: 'AVIF 是在网页上分发图像的理想格式-小巧、高效且高质量。但是,当需要对这些图像进行编辑、修饰或在设计工具中处理时,AVIF 就成了障碍。Figma、Photoshop、Illustrator、Sketch 以及几乎所有的专业设计工具都期望接收 PNG 来进行透明度处理和无损编辑。将 AVIF 转换为 PNG 是连接网页分发世界与创意编辑世界之间的桥梁。',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
type: 'title',
|
|
67
|
+
text: 'AVIF vs PNG:分发 vs 编辑',
|
|
68
|
+
level: 3,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html: 'AVIF 作为分发格式脱颖而出:文件小、加载快、支持 Alpha 通道且视觉质量出色。然而,其工具生态系统有限。大多数设计软件无法直接导入 AVIF,这中断了创意工作流。尝试在 Figma 中打开 AVIF 或将其作为图层导入 Photoshop 根本行不通。',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html: 'PNG 是数字设计的原生格式。凭借无损压缩、完整的 Alpha 通道支持以及与所有创意工具的通用兼容性,PNG 是首选的工作格式。当您需要缩放、修饰、导出为多种格式或进行图层化工作时,PNG 保证您在过程中不会丢失任何细节或像素。',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'title',
|
|
80
|
+
text: '对比:云端转换器 vs 我们的本地架构',
|
|
81
|
+
level: 3,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'comparative',
|
|
85
|
+
items: [
|
|
86
|
+
{
|
|
87
|
+
title: '云端转换器',
|
|
88
|
+
description: '将您的 AVIF 文件上传到远程服务器进行处理的工具。',
|
|
89
|
+
icon: 'mdi:cloud-upload',
|
|
90
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
91
|
+
points: [
|
|
92
|
+
'您的设计图像传输到了第三方服务器',
|
|
93
|
+
'由于网络延迟带来的等待时间',
|
|
94
|
+
'Alpha 通道可能丢失或改变',
|
|
95
|
+
'大小限制导致批量转换困难',
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
title: '我们的本地架构',
|
|
100
|
+
description: '通过 Vanilla JS 技术和 Canvas API 在浏览器中直接处理。',
|
|
101
|
+
icon: 'mdi:laptop-mac',
|
|
102
|
+
highlight: true,
|
|
103
|
+
points: [
|
|
104
|
+
'完美还原并保留 Alpha 通道',
|
|
105
|
+
'即时转换,无数据传输',
|
|
106
|
+
'不设文件数量、大小或批量限制',
|
|
107
|
+
'为专有设计资产提供完全隐私保护',
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'title',
|
|
114
|
+
text: '带透明度的技术转换如何运行',
|
|
115
|
+
level: 3,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '现代浏览器凭借集成的 AV1 引擎原生支持 AVIF 解码。加载文件时,浏览器会在内存中对其进行解码,并保留所有 Alpha 通道信息。解码后的图像(包括其透明度)会以正确的合成模式绘制在 HTML5 <code>Canvas</code> 元素上,以保持 Alpha 通道。',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'paragraph',
|
|
123
|
+
html: '与导出为 JPG(会通过填充白色来破坏透明度)不同,通过 <code>toBlob(\'image/png\')</code> 导出为 PNG 会完整保留 Alpha 通道。结果是一个具有无损压缩的 PNG,它保留了原始 AVIF 的每一个像素、每一处半透明和每一处细微差别。',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'tip',
|
|
127
|
+
title: '任何设计工具必备的前提步骤',
|
|
128
|
+
html: '在将您的 AVIF 导入 Figma、Photoshop、Illustrator 或任何设计工具之前,请先将其转换为 PNG。这些应用程序无法直接读取 AVIF,但 PNG 在所有这些工具中都能原生运行,且能完美保留透明度和质量。',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: '使用场景:您何时需要将 AVIF 转换为 PNG',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
icon: 'mdi:check-circle',
|
|
138
|
+
items: [
|
|
139
|
+
'导入到 Figma、Sketch、Adobe XD 或其他 UI 设计工具。',
|
|
140
|
+
'在 Photoshop、Affinity Photo 或 GIMP 中作为图层进行编辑,并保持透明度。',
|
|
141
|
+
'用作生成图标或精灵图(sprites)的源文件。',
|
|
142
|
+
'发送给使用标准设计软件的客户或合作者。',
|
|
143
|
+
'以无损编辑格式存档带有透明度的图像。',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: '结论:连接网页与设计的桥梁',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'paragraph',
|
|
153
|
+
html: 'AVIF 和 PNG 是现代工作流中的完美拍档:AVIF 用于高效网页分发,PNG 用于设计工具内的编辑和协作。使用我们的转换器,两者之间的转换是即时的、私密的,且能保留每一个细节-这正是当您的视觉资产至关重要时所需要的。',
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
export const content: AvifAPngLocaleContent = {
|
|
159
|
+
slug,
|
|
160
|
+
title,
|
|
161
|
+
description,
|
|
162
|
+
ui,
|
|
163
|
+
seo,
|
|
164
|
+
faq,
|
|
165
|
+
bibliography,
|
|
166
|
+
howTo,
|
|
167
|
+
schemas: generateSchemas({ title, description, inLanguage: 'zh', faq, howTo }),
|
|
168
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { avifAPng } from './index';
|
|
4
|
-
import type { KnownLocale } from '../../types';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
locale?: KnownLocale;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { locale = 'es' } = Astro.props;
|
|
11
|
-
const content = await avifAPng.i18n[locale]?.();
|
|
12
|
-
if (!content) return null;
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { avifAPng } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await avifAPng.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|