@jjlmoya/utils-converters 1.7.0 → 1.8.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 +60 -59
- package/src/shared/logic/schemas.ts +57 -0
- package/src/tests/faq_count.test.ts +13 -4
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/avifAJpg/i18n/de.ts +178 -0
- package/src/tool/avifAJpg/i18n/en.ts +2 -12
- package/src/tool/avifAJpg/i18n/es.ts +2 -12
- package/src/tool/avifAJpg/i18n/fr.ts +2 -12
- package/src/tool/avifAJpg/i18n/id.ts +178 -0
- package/src/tool/avifAJpg/i18n/it.ts +178 -0
- package/src/tool/avifAJpg/i18n/ja.ts +178 -0
- package/src/tool/avifAJpg/i18n/ko.ts +178 -0
- package/src/tool/avifAJpg/i18n/nl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pl.ts +178 -0
- package/src/tool/avifAJpg/i18n/pt.ts +178 -0
- package/src/tool/avifAJpg/i18n/ru.ts +178 -0
- package/src/tool/avifAJpg/i18n/sv.ts +178 -0
- package/src/tool/avifAJpg/i18n/tr.ts +178 -0
- package/src/tool/avifAJpg/i18n/zh.ts +178 -0
- package/src/tool/avifAJpg/index.ts +13 -1
- package/src/tool/avifAPng/i18n/de.ts +178 -0
- package/src/tool/avifAPng/i18n/en.ts +2 -12
- package/src/tool/avifAPng/i18n/es.ts +2 -12
- package/src/tool/avifAPng/i18n/fr.ts +2 -12
- package/src/tool/avifAPng/i18n/id.ts +178 -0
- package/src/tool/avifAPng/i18n/it.ts +178 -0
- package/src/tool/avifAPng/i18n/ja.ts +178 -0
- package/src/tool/avifAPng/i18n/ko.ts +178 -0
- package/src/tool/avifAPng/i18n/nl.ts +178 -0
- package/src/tool/avifAPng/i18n/pl.ts +178 -0
- package/src/tool/avifAPng/i18n/pt.ts +178 -0
- package/src/tool/avifAPng/i18n/ru.ts +178 -0
- package/src/tool/avifAPng/i18n/sv.ts +178 -0
- package/src/tool/avifAPng/i18n/tr.ts +178 -0
- package/src/tool/avifAPng/i18n/zh.ts +178 -0
- package/src/tool/avifAPng/index.ts +13 -1
- package/src/tool/avifAWebp/i18n/de.ts +178 -0
- package/src/tool/avifAWebp/i18n/en.ts +2 -12
- package/src/tool/avifAWebp/i18n/es.ts +2 -12
- package/src/tool/avifAWebp/i18n/fr.ts +2 -12
- package/src/tool/avifAWebp/i18n/id.ts +178 -0
- package/src/tool/avifAWebp/i18n/it.ts +178 -0
- package/src/tool/avifAWebp/i18n/ja.ts +178 -0
- package/src/tool/avifAWebp/i18n/ko.ts +178 -0
- package/src/tool/avifAWebp/i18n/nl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pl.ts +178 -0
- package/src/tool/avifAWebp/i18n/pt.ts +178 -0
- package/src/tool/avifAWebp/i18n/ru.ts +178 -0
- package/src/tool/avifAWebp/i18n/sv.ts +178 -0
- package/src/tool/avifAWebp/i18n/tr.ts +178 -0
- package/src/tool/avifAWebp/i18n/zh.ts +178 -0
- package/src/tool/avifAWebp/index.ts +13 -1
- package/src/tool/bmpAJpg/i18n/de.ts +178 -0
- package/src/tool/bmpAJpg/i18n/en.ts +2 -12
- package/src/tool/bmpAJpg/i18n/es.ts +2 -12
- package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
- package/src/tool/bmpAJpg/i18n/id.ts +178 -0
- package/src/tool/bmpAJpg/i18n/it.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
- package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
- package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
- package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
- package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
- package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
- package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
- package/src/tool/bmpAJpg/index.ts +13 -1
- package/src/tool/bmpAPng/i18n/de.ts +177 -0
- package/src/tool/bmpAPng/i18n/en.ts +2 -12
- package/src/tool/bmpAPng/i18n/es.ts +2 -12
- package/src/tool/bmpAPng/i18n/fr.ts +2 -12
- package/src/tool/bmpAPng/i18n/id.ts +177 -0
- package/src/tool/bmpAPng/i18n/it.ts +177 -0
- package/src/tool/bmpAPng/i18n/ja.ts +177 -0
- package/src/tool/bmpAPng/i18n/ko.ts +177 -0
- package/src/tool/bmpAPng/i18n/nl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pl.ts +177 -0
- package/src/tool/bmpAPng/i18n/pt.ts +177 -0
- package/src/tool/bmpAPng/i18n/ru.ts +177 -0
- package/src/tool/bmpAPng/i18n/sv.ts +177 -0
- package/src/tool/bmpAPng/i18n/tr.ts +177 -0
- package/src/tool/bmpAPng/i18n/zh.ts +177 -0
- package/src/tool/bmpAPng/index.ts +13 -1
- package/src/tool/bmpAWebp/i18n/de.ts +178 -0
- package/src/tool/bmpAWebp/i18n/en.ts +2 -12
- package/src/tool/bmpAWebp/i18n/es.ts +2 -12
- package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
- package/src/tool/bmpAWebp/i18n/id.ts +178 -0
- package/src/tool/bmpAWebp/i18n/it.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
- package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
- package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
- package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
- package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
- package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
- package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
- package/src/tool/bmpAWebp/index.ts +13 -1
- package/src/tool/gifAJpg/i18n/de.ts +178 -0
- package/src/tool/gifAJpg/i18n/en.ts +2 -12
- package/src/tool/gifAJpg/i18n/es.ts +2 -12
- package/src/tool/gifAJpg/i18n/fr.ts +2 -12
- package/src/tool/gifAJpg/i18n/id.ts +178 -0
- package/src/tool/gifAJpg/i18n/it.ts +178 -0
- package/src/tool/gifAJpg/i18n/ja.ts +178 -0
- package/src/tool/gifAJpg/i18n/ko.ts +178 -0
- package/src/tool/gifAJpg/i18n/nl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pl.ts +178 -0
- package/src/tool/gifAJpg/i18n/pt.ts +178 -0
- package/src/tool/gifAJpg/i18n/ru.ts +178 -0
- package/src/tool/gifAJpg/i18n/sv.ts +178 -0
- package/src/tool/gifAJpg/i18n/tr.ts +178 -0
- package/src/tool/gifAJpg/i18n/zh.ts +178 -0
- package/src/tool/gifAJpg/index.ts +13 -1
- package/src/tool/gifAPng/i18n/de.ts +178 -0
- package/src/tool/gifAPng/i18n/en.ts +2 -12
- package/src/tool/gifAPng/i18n/es.ts +2 -12
- package/src/tool/gifAPng/i18n/fr.ts +2 -12
- package/src/tool/gifAPng/i18n/id.ts +178 -0
- package/src/tool/gifAPng/i18n/it.ts +178 -0
- package/src/tool/gifAPng/i18n/ja.ts +178 -0
- package/src/tool/gifAPng/i18n/ko.ts +178 -0
- package/src/tool/gifAPng/i18n/nl.ts +178 -0
- package/src/tool/gifAPng/i18n/pl.ts +178 -0
- package/src/tool/gifAPng/i18n/pt.ts +178 -0
- package/src/tool/gifAPng/i18n/ru.ts +178 -0
- package/src/tool/gifAPng/i18n/sv.ts +178 -0
- package/src/tool/gifAPng/i18n/tr.ts +178 -0
- package/src/tool/gifAPng/i18n/zh.ts +178 -0
- package/src/tool/gifAPng/index.ts +12 -0
- package/src/tool/gifAWebp/i18n/de.ts +178 -0
- package/src/tool/gifAWebp/i18n/en.ts +2 -12
- package/src/tool/gifAWebp/i18n/es.ts +2 -12
- package/src/tool/gifAWebp/i18n/fr.ts +2 -12
- package/src/tool/gifAWebp/i18n/id.ts +178 -0
- package/src/tool/gifAWebp/i18n/it.ts +178 -0
- package/src/tool/gifAWebp/i18n/ja.ts +178 -0
- package/src/tool/gifAWebp/i18n/ko.ts +178 -0
- package/src/tool/gifAWebp/i18n/nl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pl.ts +178 -0
- package/src/tool/gifAWebp/i18n/pt.ts +178 -0
- package/src/tool/gifAWebp/i18n/ru.ts +178 -0
- package/src/tool/gifAWebp/i18n/sv.ts +178 -0
- package/src/tool/gifAWebp/i18n/tr.ts +178 -0
- package/src/tool/gifAWebp/i18n/zh.ts +178 -0
- package/src/tool/gifAWebp/index.ts +12 -0
- package/src/tool/imagenBase64/i18n/de.ts +168 -0
- package/src/tool/imagenBase64/i18n/en.ts +2 -12
- package/src/tool/imagenBase64/i18n/es.ts +2 -12
- package/src/tool/imagenBase64/i18n/fr.ts +2 -12
- package/src/tool/imagenBase64/i18n/id.ts +168 -0
- package/src/tool/imagenBase64/i18n/it.ts +168 -0
- package/src/tool/imagenBase64/i18n/ja.ts +168 -0
- package/src/tool/imagenBase64/i18n/ko.ts +168 -0
- package/src/tool/imagenBase64/i18n/nl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pl.ts +168 -0
- package/src/tool/imagenBase64/i18n/pt.ts +173 -0
- package/src/tool/imagenBase64/i18n/ru.ts +168 -0
- package/src/tool/imagenBase64/i18n/sv.ts +168 -0
- package/src/tool/imagenBase64/i18n/tr.ts +168 -0
- package/src/tool/imagenBase64/i18n/zh.ts +168 -0
- package/src/tool/imagenBase64/index.ts +12 -0
- package/src/tool/jpgAIco/i18n/de.ts +183 -0
- package/src/tool/jpgAIco/i18n/en.ts +8 -13
- package/src/tool/jpgAIco/i18n/es.ts +13 -18
- package/src/tool/jpgAIco/i18n/fr.ts +9 -14
- package/src/tool/jpgAIco/i18n/id.ts +183 -0
- package/src/tool/jpgAIco/i18n/it.ts +183 -0
- package/src/tool/jpgAIco/i18n/ja.ts +183 -0
- package/src/tool/jpgAIco/i18n/ko.ts +183 -0
- package/src/tool/jpgAIco/i18n/nl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pl.ts +183 -0
- package/src/tool/jpgAIco/i18n/pt.ts +183 -0
- package/src/tool/jpgAIco/i18n/ru.ts +183 -0
- package/src/tool/jpgAIco/i18n/sv.ts +183 -0
- package/src/tool/jpgAIco/i18n/tr.ts +183 -0
- package/src/tool/jpgAIco/i18n/zh.ts +183 -0
- package/src/tool/jpgAIco/index.ts +12 -0
- package/src/tool/jpgAPng/i18n/de.ts +178 -0
- package/src/tool/jpgAPng/i18n/en.ts +2 -12
- package/src/tool/jpgAPng/i18n/es.ts +2 -12
- package/src/tool/jpgAPng/i18n/fr.ts +2 -12
- package/src/tool/jpgAPng/i18n/id.ts +178 -0
- package/src/tool/jpgAPng/i18n/it.ts +178 -0
- package/src/tool/jpgAPng/i18n/ja.ts +178 -0
- package/src/tool/jpgAPng/i18n/ko.ts +178 -0
- package/src/tool/jpgAPng/i18n/nl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pl.ts +178 -0
- package/src/tool/jpgAPng/i18n/pt.ts +178 -0
- package/src/tool/jpgAPng/i18n/ru.ts +178 -0
- package/src/tool/jpgAPng/i18n/sv.ts +178 -0
- package/src/tool/jpgAPng/i18n/tr.ts +178 -0
- package/src/tool/jpgAPng/i18n/zh.ts +178 -0
- package/src/tool/jpgAPng/index.ts +13 -1
- package/src/tool/jpgAWebp/i18n/de.ts +178 -0
- package/src/tool/jpgAWebp/i18n/en.ts +2 -12
- package/src/tool/jpgAWebp/i18n/es.ts +2 -12
- package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
- package/src/tool/jpgAWebp/i18n/id.ts +178 -0
- package/src/tool/jpgAWebp/i18n/it.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
- package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
- package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
- package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
- package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
- package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
- package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
- package/src/tool/jpgAWebp/index.ts +12 -0
- package/src/tool/pngAIco/i18n/de.ts +183 -0
- package/src/tool/pngAIco/i18n/en.ts +8 -13
- package/src/tool/pngAIco/i18n/es.ts +19 -24
- package/src/tool/pngAIco/i18n/fr.ts +20 -25
- package/src/tool/pngAIco/i18n/id.ts +183 -0
- package/src/tool/pngAIco/i18n/it.ts +183 -0
- package/src/tool/pngAIco/i18n/ja.ts +183 -0
- package/src/tool/pngAIco/i18n/ko.ts +183 -0
- package/src/tool/pngAIco/i18n/nl.ts +183 -0
- package/src/tool/pngAIco/i18n/pl.ts +183 -0
- package/src/tool/pngAIco/i18n/pt.ts +183 -0
- package/src/tool/pngAIco/i18n/ru.ts +183 -0
- package/src/tool/pngAIco/i18n/sv.ts +183 -0
- package/src/tool/pngAIco/i18n/tr.ts +183 -0
- package/src/tool/pngAIco/i18n/zh.ts +183 -0
- package/src/tool/pngAIco/index.ts +12 -0
- package/src/tool/pngAJpg/i18n/de.ts +191 -0
- package/src/tool/pngAJpg/i18n/en.ts +2 -12
- package/src/tool/pngAJpg/i18n/es.ts +2 -12
- package/src/tool/pngAJpg/i18n/fr.ts +2 -12
- package/src/tool/pngAJpg/i18n/id.ts +191 -0
- package/src/tool/pngAJpg/i18n/it.ts +191 -0
- package/src/tool/pngAJpg/i18n/ja.ts +191 -0
- package/src/tool/pngAJpg/i18n/ko.ts +191 -0
- package/src/tool/pngAJpg/i18n/nl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pl.ts +191 -0
- package/src/tool/pngAJpg/i18n/pt.ts +191 -0
- package/src/tool/pngAJpg/i18n/ru.ts +191 -0
- package/src/tool/pngAJpg/i18n/sv.ts +191 -0
- package/src/tool/pngAJpg/i18n/tr.ts +191 -0
- package/src/tool/pngAJpg/i18n/zh.ts +191 -0
- package/src/tool/pngAJpg/index.ts +13 -1
- package/src/tool/pngAWebp/i18n/de.ts +182 -0
- package/src/tool/pngAWebp/i18n/en.ts +2 -12
- package/src/tool/pngAWebp/i18n/es.ts +2 -12
- package/src/tool/pngAWebp/i18n/fr.ts +2 -12
- package/src/tool/pngAWebp/i18n/id.ts +182 -0
- package/src/tool/pngAWebp/i18n/it.ts +182 -0
- package/src/tool/pngAWebp/i18n/ja.ts +182 -0
- package/src/tool/pngAWebp/i18n/ko.ts +182 -0
- package/src/tool/pngAWebp/i18n/nl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pl.ts +182 -0
- package/src/tool/pngAWebp/i18n/pt.ts +182 -0
- package/src/tool/pngAWebp/i18n/ru.ts +182 -0
- package/src/tool/pngAWebp/i18n/sv.ts +182 -0
- package/src/tool/pngAWebp/i18n/tr.ts +182 -0
- package/src/tool/pngAWebp/i18n/zh.ts +182 -0
- package/src/tool/pngAWebp/index.ts +12 -0
- package/src/tool/svgAJpg/i18n/de.ts +178 -0
- package/src/tool/svgAJpg/i18n/en.ts +8 -13
- package/src/tool/svgAJpg/i18n/es.ts +8 -13
- package/src/tool/svgAJpg/i18n/fr.ts +2 -12
- package/src/tool/svgAJpg/i18n/id.ts +178 -0
- package/src/tool/svgAJpg/i18n/it.ts +178 -0
- package/src/tool/svgAJpg/i18n/ja.ts +178 -0
- package/src/tool/svgAJpg/i18n/ko.ts +178 -0
- package/src/tool/svgAJpg/i18n/nl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pl.ts +178 -0
- package/src/tool/svgAJpg/i18n/pt.ts +178 -0
- package/src/tool/svgAJpg/i18n/ru.ts +178 -0
- package/src/tool/svgAJpg/i18n/sv.ts +178 -0
- package/src/tool/svgAJpg/i18n/tr.ts +178 -0
- package/src/tool/svgAJpg/i18n/zh.ts +178 -0
- package/src/tool/svgAJpg/index.ts +12 -0
- package/src/tool/svgAPng/i18n/de.ts +178 -0
- package/src/tool/svgAPng/i18n/en.ts +8 -13
- package/src/tool/svgAPng/i18n/es.ts +31 -36
- package/src/tool/svgAPng/i18n/fr.ts +2 -12
- package/src/tool/svgAPng/i18n/id.ts +178 -0
- package/src/tool/svgAPng/i18n/it.ts +178 -0
- package/src/tool/svgAPng/i18n/ja.ts +178 -0
- package/src/tool/svgAPng/i18n/ko.ts +178 -0
- package/src/tool/svgAPng/i18n/nl.ts +178 -0
- package/src/tool/svgAPng/i18n/pl.ts +178 -0
- package/src/tool/svgAPng/i18n/pt.ts +178 -0
- package/src/tool/svgAPng/i18n/ru.ts +178 -0
- package/src/tool/svgAPng/i18n/sv.ts +178 -0
- package/src/tool/svgAPng/i18n/tr.ts +178 -0
- package/src/tool/svgAPng/i18n/zh.ts +178 -0
- package/src/tool/svgAPng/index.ts +12 -0
- package/src/tool/webpAIco/i18n/de.ts +183 -0
- package/src/tool/webpAIco/i18n/en.ts +8 -13
- package/src/tool/webpAIco/i18n/es.ts +9 -14
- package/src/tool/webpAIco/i18n/fr.ts +11 -16
- package/src/tool/webpAIco/i18n/id.ts +183 -0
- package/src/tool/webpAIco/i18n/it.ts +183 -0
- package/src/tool/webpAIco/i18n/ja.ts +183 -0
- package/src/tool/webpAIco/i18n/ko.ts +183 -0
- package/src/tool/webpAIco/i18n/nl.ts +183 -0
- package/src/tool/webpAIco/i18n/pl.ts +183 -0
- package/src/tool/webpAIco/i18n/pt.ts +183 -0
- package/src/tool/webpAIco/i18n/ru.ts +183 -0
- package/src/tool/webpAIco/i18n/sv.ts +183 -0
- package/src/tool/webpAIco/i18n/tr.ts +183 -0
- package/src/tool/webpAIco/i18n/zh.ts +183 -0
- package/src/tool/webpAIco/index.ts +12 -0
- package/src/tool/webpAJpg/i18n/de.ts +187 -0
- package/src/tool/webpAJpg/i18n/en.ts +9 -13
- package/src/tool/webpAJpg/i18n/es.ts +37 -42
- package/src/tool/webpAJpg/i18n/fr.ts +35 -40
- package/src/tool/webpAJpg/i18n/id.ts +182 -0
- package/src/tool/webpAJpg/i18n/it.ts +182 -0
- package/src/tool/webpAJpg/i18n/ja.ts +182 -0
- package/src/tool/webpAJpg/i18n/ko.ts +182 -0
- package/src/tool/webpAJpg/i18n/nl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pl.ts +182 -0
- package/src/tool/webpAJpg/i18n/pt.ts +182 -0
- package/src/tool/webpAJpg/i18n/ru.ts +182 -0
- package/src/tool/webpAJpg/i18n/sv.ts +182 -0
- package/src/tool/webpAJpg/i18n/tr.ts +182 -0
- package/src/tool/webpAJpg/i18n/zh.ts +182 -0
- package/src/tool/webpAJpg/index.ts +12 -0
- package/src/tool/webpAPng/i18n/de.ts +182 -0
- package/src/tool/webpAPng/i18n/en.ts +8 -13
- package/src/tool/webpAPng/i18n/es.ts +35 -40
- package/src/tool/webpAPng/i18n/fr.ts +2 -12
- package/src/tool/webpAPng/i18n/id.ts +182 -0
- package/src/tool/webpAPng/i18n/it.ts +182 -0
- package/src/tool/webpAPng/i18n/ja.ts +182 -0
- package/src/tool/webpAPng/i18n/ko.ts +182 -0
- package/src/tool/webpAPng/i18n/nl.ts +182 -0
- package/src/tool/webpAPng/i18n/pl.ts +182 -0
- package/src/tool/webpAPng/i18n/pt.ts +182 -0
- package/src/tool/webpAPng/i18n/ru.ts +182 -0
- package/src/tool/webpAPng/i18n/sv.ts +182 -0
- package/src/tool/webpAPng/i18n/tr.ts +182 -0
- package/src/tool/webpAPng/i18n/zh.ts +182 -0
- package/src/tool/webpAPng/index.ts +12 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convert-bmp-to-webp';
|
|
6
|
+
const title = 'BMP WebP 무료 변환기';
|
|
7
|
+
const description =
|
|
8
|
+
'BMP 이미지를 오프라인에서 WebP로 변환하세요. 방대한 파일을 킬로바이트 단위로 대폭 압축합니다. 파일 업로드 없음. 무료, 오프라인, 100% 안전한 로컬 처리.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'BMP 파일을 여기로 드래그하세요...',
|
|
12
|
+
convertText: '즉시 WebP로 변환하기',
|
|
13
|
+
selectFiles: '파일 선택',
|
|
14
|
+
processedFiles: '처리된 파일',
|
|
15
|
+
downloadAll: '모두 다운로드 (.zip)',
|
|
16
|
+
pending: '대기 중',
|
|
17
|
+
bibliographyTitle: '참고 문헌',
|
|
18
|
+
faqTitle: '자주 묻는 질문',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '왜 BMP 파일은 10배 이상 용량이 크며, WebP로 변환하면 어떤 이점이 있나요?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP는 압축되지 않은 픽셀 맵을 저장하여 용량이 큽니다. WebP는 고도의 수학적 압축 알고리즘을 사용하여 이미지 품질을 시각적으로 유지하면서도 용량을 메가바이트 단위에서 킬로바이트 단위로 획기적으로 줄여줍니다.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '계정을 등록해야 하나요?',
|
|
29
|
+
answer:
|
|
30
|
+
'이메일이나 계정 등록이 필요 없습니다. 모든 작업은 사용자의 브라우저 내 JavaScript에 의해 로컬에서 처리되므로 외부 서버로 파일이 전송되지 않아 보안이 완벽합니다.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '여러 파일을 동시에 드래그하여 변환할 수 있나요?',
|
|
34
|
+
answer:
|
|
35
|
+
'네, 사용자의 기기 성능이 허용하는 한 50개 또는 100개의 파일을 한꺼번에 처리할 수 있습니다.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '파일 준비',
|
|
42
|
+
text: '변환하려는 BMP 비트맵 파일들을 한곳에 모아두세요.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '즉각적인 일괄 처리',
|
|
46
|
+
text: '준비된 모든 파일을 당사 웹 페이지의 작업 영역으로 드래그 앤 드롭하세요.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '최적화된 WebP 결과물 확인',
|
|
50
|
+
text: '변환된 결과물을 개별적으로 다운로드하거나 즉시 생성된 ZIP 패키지로 한번에 받으세요.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'BMP to WebP 변환기: 혁신적인 저장 공간 확보 솔루션',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP를 WebP로 변환하는 것은 이미지 관리 측면에서 가장 효과적인 혁신 중 하나입니다. BMP(비트맵) 형식은 디지털 환경에서 가장 오래되고 용량이 큰 형식 중 하나로, 압축 없이 모든 픽셀을 그대로 저장합니다. 반면 구글에서 개발한 WebP는 원본과 구분하기 어려운 시각적 품질을 유지하면서도 최신 압축 알고리즘을 통해 용량을 원본 대비 최대 1/100까지 줄일 수 있습니다.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP와 WebP의 효율성 차이는 어디서 발생하나요?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'BMP 형식은 1980년대 윈도우 환경을 위해 설계되었으며, 당시에는 저장 공간보다는 처리 속도를 위해 비압축 방식을 선택했습니다. 따라서 1920x1080 이미지라면 내용에 관계없이 약 6MB의 고정 용량을 가집니다. 이는 전문 편집에는 유리할 수 있지만 웹 환경이나 대용량 저장에는 매우 비효율적입니다.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP는 디지털 비디오 기술에 기초한 블록 기반 예측 압축 및 DCT 변환 기술을 사용하여 원본의 화질 저하를 최소화하면서 80KB~300KB 수준으로 용량을 최적화합니다. 또한 투명도를 지원하는 알파 채널 기능까지 갖추고 있어 다용도로 활용하기에 최적의 형식입니다.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: '인프라 비교: 클라우드 방식 vs 당사의 로컬 아키텍처',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: '클라우드 변환기',
|
|
98
|
+
description: '원본 BMP 파일을 외부 서버로 업로드하여 처리하는 방식입니다.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'네트워크 속도에 따라 대용량 BMP 업로드 시 지연 시간 발생',
|
|
103
|
+
'사용자의 이미지가 외부 서버에 남을 수 있는 보안 리스크',
|
|
104
|
+
'무료 서비스의 경우 파일 크기 및 개수 제한 존재',
|
|
105
|
+
'불필요한 광고와 데이터 추적기 포함 가능성',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '당사의 로컬 아키텍처',
|
|
110
|
+
description: '사용자의 브라우저 내에서 직접 구동되어 기기를 벗어나지 않는 안전한 처리 방식입니다.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'네트워크 전송 없이 실시간 즉시 변환 수행',
|
|
115
|
+
'철저한 개인정보 보호 — 외부로 0바이트 전송',
|
|
116
|
+
'파일당 용량이나 개수에 대한 인위적인 제한 없음',
|
|
117
|
+
'인터넷 연결 없이도 오프라인에서도 작동',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: '브라우저 기반 로컬 변환 기술의 작동 원리',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '변환 과정은 순수하게 사용자의 기기에서만 이루어집니다. 드래그한 BMP 파일은 브라우저의 <code>FileReader</code> API를 통해 메모리에 Blob 데이터로 읽혀지며, 보이지 않는 캔버스 위에 그려집니다. 그 후 브라우저 고유의 WebP 압축 알고리즘이 적용되어 원본과 시각적으로 동일하지만 용량은 훨씬 최적화된 결과물이 생성됩니다.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '결과물은 즉시 다운로드 가능한 URL로 생성되어 사용자의 디스크에 저장되며, 전 과정에서 네트워크 연결은 전혀 발생하지 않습니다. 따라서 매우 빠르고 안전합니다.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: '압도적인 효율성: 99% 용량 절감',
|
|
138
|
+
html: 'BMP에서 WebP로의 변환은 파일 크기를 최대 99%까지 줄일 수 있습니다. 원본 20MB 파일이 시각적으로 거의 동일한 품질의 200KB 파일로 변환됩니다. 이는 표준 이미지 형식 간에 가능한 가장 효율적인 용량 혁신입니다.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'WebP의 활용성과 호환성',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'웹 기반 서비스 — 크롬, 사파리, 엣지 등 모든 현대적 브라우저 지원.',
|
|
150
|
+
'소셜 네트워크 — 인스타그램, X(트위터), 페이스북 등에서의 네이티브 지원.',
|
|
151
|
+
'앱 개발 및 PWA — 빠른 로딩을 위한 최소 용량 이미지 구축.',
|
|
152
|
+
'효율적인 아카이브 — 대용량 BMP 컬렉션을 기가바이트 단위로 절약하며 보관.',
|
|
153
|
+
'이메일 마케팅 — 모든 메일 클라이언트에서 빠르게 로딩되는 고화질 이미지.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: '결론: 클릭 한 번으로 경험하는 압도적인 저장 효율',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: '오래된 소프트웨어의 결과물이나 비압축 스크린샷과 같이 용량만 차지하는 BMP 파일들을 관리하고 있다면 WebP로의 변환은 최고의 선택입니다. 당사의 도구는 별도의 제한 없이 즉각적이고 안전하게 사용자의 이미지를 현대화해 드립니다.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: BmpAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'bmp-naar-webp-converter';
|
|
6
|
+
const title = 'Gratis BMP naar WebP Converteren';
|
|
7
|
+
const description =
|
|
8
|
+
'Converteer BMP-afbeeldingen naar WebP zonder verbinding. Reduceer enorme bestanden naar kilobytes. Zonder bestanden te uploaden. Gratis, offline en volledig privé.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Sleep BMP-bestanden hierheen...',
|
|
12
|
+
convertText: 'Om ze direct naar WebP te converteren',
|
|
13
|
+
selectFiles: 'Bestanden selecteren',
|
|
14
|
+
processedFiles: 'Verwerkte bestanden',
|
|
15
|
+
downloadAll: 'Alles downloaden (.zip)',
|
|
16
|
+
pending: 'In afwachting',
|
|
17
|
+
bibliographyTitle: 'Bibliografische Referenties',
|
|
18
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Waarom nemen mijn BMP-bestanden 10 keer meer ruimte in en wat win ik met WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP slaat ongecomprimeerde pixelkaarten op. WebP gebruikt wiskundige compressie om enorme BMP\'s te verkleinen tot minder dan een megabyte, terwijl de afbeelding zeer herkenbaar blijft.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Moet ik een account registreren?',
|
|
29
|
+
answer:
|
|
30
|
+
'We vragen niet om een e-mailadres en je materiaal blijft geïsoleerd, aangezien de verwerking wordt uitgevoerd door de JavaScript van de browser op je eigen pc, zonder verzending op afstand.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Kan ik veel bestanden tegelijkertijd slepen?',
|
|
34
|
+
answer:
|
|
35
|
+
'Ja, je kunt 50 of 100 bestanden slepen als je hardware de verwerking van alles aankan zonder wachtrijen te creëren.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Ruwe Bestanden Identificeren',
|
|
42
|
+
text: 'Plaats je bitmap-collecties in vensters die klaar zijn voor de overdracht.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Natieve Batch-activering',
|
|
46
|
+
text: 'Projecteer of sleep alle bestanden naar onze digitale tafel.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'WebP Batch-evacuatie',
|
|
50
|
+
text: 'Klik op de resultaten en je krijgt afzonderlijk de afbeeldingen met micro-gewichten of als directe gecomprimeerde pakketten.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'BMP naar WebP Converter: De Meest Extreme Formaatverkleining Mogelijk',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP naar WebP converteren is ongetwijfeld de meest spectaculaire transformatie die je met een afbeelding kunt doen. Het BMP-formaat (Bitmap) is een van de oudste en zwaarste formaten in het digitale ecosysteem: het slaat elke pixel op zonder enige vorm van compressie, wat resulteert in bestanden die 20, 50 of zelfs 100 keer zwaarder kunnen zijn dan hun moderne equivalent. WebP, ontwikkeld door Google, past geavanceerde compressie-algoritmen toe die de grootte tot het kleinst mogelijke minimum beperken met behoud van een uitstekende visuele kwaliteit.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Waarom is BMP zo zwaar en WebP zo efficiënt?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Het BMP-formaat werd in de jaren 80 geboren voor Windows, toen schijfruimte groot was en compressie geen prioriteit had. Elke pixel wordt opgeslagen zoals hij is, zonder enig reductie-algoritme: een afbeelding van 1920x1080 pixels in BMP neemt precies 5,93 MB in beslag, ongeacht de inhoud. Dit maakt het ideaal voor interne screenshots of bewerking zonder verlies, maar totaal ongeschikt voor het web of moderne opslag.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP gebruikt voorspellende compressie gebaseerd op blokken en DCT-getransformeerden (dezelfde technologie die ten grondslag ligt aan digitale video), waardoor dezelfde afbeelding van 1920x1080 tussen de 80 KB eb 300 KB in beslag neemt. Dat betekent een vermindering van 95 tot 99% ten opzichte van de originele BMP. Bovendien ondersteunt WebP het alfakanaal voor transparantie en zowel verlieslatende als verliesvrije compressie, wat totale veelzijdigheid biedt.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergelijking: Cloud Converters vs Onze Lokale Architectuur',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Cloud Converters',
|
|
98
|
+
description: 'Tools die je BMP-bestanden naar een externe server uploaden om ze te verwerken.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Het uploaden van een BMP van 20 MB duurt minuten bij een trage verbinding',
|
|
103
|
+
'Je afbeeldingen blijven op externe servers staan',
|
|
104
|
+
'Groottebeperkingen die grote BMP-bestanden uitsluiten',
|
|
105
|
+
'Invasieve advertenties en datatrackers',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Onze Lokale Architectuur',
|
|
110
|
+
description: 'Directe verwerking in je browser via Vanilla JS-technologie und Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Directe conversie zonder netwerkoverdracht',
|
|
115
|
+
'Absolute privacy — 0 bytes verlaten je apparaat',
|
|
116
|
+
'Zonder groottebeperkingen per bestand',
|
|
117
|
+
'Werkt zonder internetverbinding',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Hoe de technische conversie in de browser werkt',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Bij het slepen van een BMP-bestand leest de browser dit als een binair Blob in het RAM-geheugen. Dit Blob wordt geladen in een <code>Image</code> element van JavaScript, dat het decodeert met de eigen afbeeldingsengine. Vervolgens wordt de afbeelding op een onzichtbaar HTML5 <code>Canvas</code> element getekend. Het Canvas fungeert als een virtueel doek waarop de afbeelding pixel voor pixel bestaat.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Eenmaal op het Canvas getekend, voeren we de methode <code>toBlob()</code> uit met het MIME-type <code>image/webp</code> en het gewenste kwaliteitsniveau. De browser past intern het WebP-compressiealgoritme toe en genereert een nieuw Blob met het resulterende bestand. Dit Blob wordt omgezet naar een directe download-URL die je browser op de schijf opslaat. Er wordt op geen enkel moment een netwerkverbinding tot stand gebracht.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'De grootste compressiesprong mogelijk',
|
|
138
|
+
html: 'De conversie van BMP naar WebP kan een vermindering van 99% in bestandsgrootte bereiken. Een BMP van 20 MB kan worden omgezet in een WebP van slechts ongeveer 200 KB met een vrijwel identieke visuele kwaliteit. Het is de meest efficiënte transformatie die beschikbaar is tussen standaard afbeeldingsformaten.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Gebruiksscenario\'s en compatibiliteit van WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Webpublicatie — Chrome, Firefox, Safari, Edge en alle moderne browsers.',
|
|
150
|
+
'Sociale netwerken — Instagram, Twitter, Facebook accepteren WebP op eigen wijze.',
|
|
151
|
+
'Web-apps en PWA — minimale groottes voor direct laden.',
|
|
152
|
+
'Efficiënte archivering — vervangt collecties van oude BMP\'s en bespaart gigabytes.',
|
|
153
|
+
'E-mailmarketing — lichte afbeeldingen die snel laden in elke moderne e-mailclient.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Conclusie: De meest impactvolle conversie met één klik',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Als je oude BMP-bestanden van Windows, ongecomprimeerde screenshots of afbeeldingen van oude tools hebt, is het converteren naar WebP de meest impactvolle actie die je kunt ondernemen om je opslag en webprestaties te optimaliseren. Met onze tool is de conversie direct, privé en zonder beperkingen — precies zoals het zou moeten zijn.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: BmpAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'nl', faq, howTo }),
|
|
178
|
+
};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konwerter-bmp-na-webp';
|
|
6
|
+
const title = 'Darmowa Konwersja BMP na WebP';
|
|
7
|
+
const description =
|
|
8
|
+
'Konwertuj obrazy BMP na WebP offline. Zmniejsz ogromne pliki do kilobajtów. Bez przesyłania plików. Darmowy, offline i całkowicie prywatny.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Przeciągnij pliki BMP...',
|
|
12
|
+
convertText: 'Aby błyskawicznie konwertować je na WebP',
|
|
13
|
+
selectFiles: 'Wybierz pliki',
|
|
14
|
+
processedFiles: 'Przetworzone pliki',
|
|
15
|
+
downloadAll: 'Pobierz wszystko (.zip)',
|
|
16
|
+
pending: 'Oczekiwanie',
|
|
17
|
+
bibliographyTitle: 'Bibliografia',
|
|
18
|
+
faqTitle: 'Często zadawane pytania',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Dlaczego moje pliki BMP zajmują 10 razy więcej miejsca i co zyskam, mając je w formacie WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'Format BMP przechowuje mapy pikseli bez kompresji. WebP wykorzystuje kompresję matematyczną, aby zmniejszyć ogromne pliki BMP do mniej niż jednego megabajta, zachowując przy tym wysoką jakość obrazu.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Czy muszę rejestrować konto?',
|
|
29
|
+
answer:
|
|
30
|
+
'Nie wymagamy podawania adresu e-mail, a Twoje materiały pozostaną odizolowane, ponieważ przetwarzanie odbywa się za pomocą skryptu JavaScript w przeglądarce zainstalowanej na Twoim komputerze, bez wysyłania plików na serwer.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Czy mogę przeciągnąć wiele plików jednocześnie?',
|
|
34
|
+
answer:
|
|
35
|
+
'Tak, możesz przeciągnąć 50 lub 100 plików, o ile Twój sprzęt poradzi sobie z przetwarzaniem ich wszystkich bez tworzenia kolejek.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Zidentyfikuj pliki surowe',
|
|
42
|
+
text: 'Umieść swoje kolekcje map bitowych w oknach gotowych do przeniesienia.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Natywna aktywacja wsadowa',
|
|
46
|
+
text: 'Przemieść lub przeciągnij wszystkie pliki na nasz cyfrowy stół.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Ewakuacja wsadowa WebP',
|
|
50
|
+
text: 'Kliknij wyniki, a otrzymasz osobno obrazy o mikrowadze lub jako natychmiastowe paczki ZIP.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Konwerter BMP na WebP: Najbardziej ekstremalna redukcja rozmiaru, jaka jest możliwa',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Konwersja BMP na WebP to bez wątpienia najbardziej spektakularna transformacja, jaką możesz przeprowadzić z obrazem. Format BMP (Bitmap) to jeden z najstarszych i najcięższych formatów w cyfrowym ekosystemie: przechowuje każdy piksel bez żadnego rodzaju kompresji, co skutkuje plikami, które mogą ważyć 20, 50, a nawet 100 razy więcej niż ich nowoczesny odpowiednik. WebP, opracowany przez Google, stosuje algorytmy kompresji najnowszej generacji, które redukują rozmiar do absolutnego minimum, zachowując przy tym doskonałą jakość wizualną.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Dlaczego BMP jest tak ciężki, a WebP tak wydajny?',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Format BMP powstał w latach 80. dla systemu Windows, kiedy miejsce na dysku było ogromne, a kompresja nie była priorytetem. Każdy piksel jest zapisywany w postaci surowej, bez żadnego algorytmu redukcji: obraz o rozmiarze 1920x1080 pikseli w formacie BMP zajmuje dokładnie 5,93 MB, niezależnie od jego treści. Dzięki temu idealnie nadaje się do wewnętrznych zrzutów ekranu lub edycji bezstratnej, ale jest całkowicie nieodpowiedni do internetu lub nowoczesnego przechowywania.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'WebP wykorzystuje kompresję predykcyjną opartą na blokach i transformatach DCT (ta sama technologia, która leży u podstaw wideo cyfrowego), sprawiając, że ten sam obraz 1920x1080 zajmuje od 80 KB do 300 KB. Oznacza to redukcję od 95 do 99% w stosunku do oryginalnego pliku BMP. Ponadto WebP obsługuje kanał alfa dla przezroczystości oraz kompresję zarówno stratną, jak i bezstratną, oferując pełną wszechstronność.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Porównanie: Konwertery w chmurze vs Nasza lokalna architektura',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Konwertery w chmurze',
|
|
98
|
+
description: 'Narzędzia przesyłające Twoje pliki BMP na zdalny serwer w celu ich przetworzenia.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Przesłanie pliku BMP o rozmiarze 20 MB trwa minuty przy wolnym połączeniu',
|
|
103
|
+
'Twoje obrazy pozostają zapisane na cudzych serwerach',
|
|
104
|
+
'Limity rozmiaru wykluczające duże pliki BMP',
|
|
105
|
+
'Inwazyjne reklamy i trackery danych',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Nasza lokalna architektura',
|
|
110
|
+
description: 'Przetwarzanie bezpośrednio w przeglądarce za pomocą technologii Vanilla JS i interfejsu Canvas API.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'Natychmiastowa konwersja bez transmisji sieciowej',
|
|
115
|
+
'Absolutna prywatność — 0 bajtów opuszcza Twoje urządzenie',
|
|
116
|
+
'Brak limitów rozmiaru na plik',
|
|
117
|
+
'Działa bez połączenia z internetem',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Jak technicznie działa konwersja w przeglądarce',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Podczas przeciągania pliku BMP przeglądarka odczytuje go jako binarny obiekt Blob w pamięci RAM. Ten Blob jest ładowany do elementu <code>Image</code> języka JavaScript, który dekoduje go przy użyciu natywnego silnika obrazów. Następnie obraz jest rysowany na niewidocznym elemencie <code>Canvas</code> HTML5. Canvas działa jako wirtualne płótno, na którym obraz istnieje w swojej postaci piksel po pikselu.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'Po narysowaniu na Canvas wykonujemy metodę <code>toBlob()</code> z typem MIME <code>image/webp</code> i pożądanym poziomem jakości. Przeglądarka stosuje wewnętrznie algorytm kompresji WebP i generuje nowy obiekt Blob z wynikowym plikiem. Ten Blob przekształca się w adres URL do bezpośredniego pobierania, który przeglądarka zapisuje na dysku. W żadnym momencie nie jest nawiązywane połączenie sieciowe.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'tip',
|
|
137
|
+
title: 'Największy możliwy skok kompresji',
|
|
138
|
+
html: 'Konwersja BMP na WebP może przynieść redukcję rozmiaru pliku o 99%. Plik BMP o rozmiarze 20 MB może stać się plikiem WebP o rozmiarze zaledwie 200 KB przy niemal identycznej jakości wizualnej. To najbardziej wydajna transformacja dostępna wśród standardowych formatów obrazów.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Przypadki użycia i kompatybilność WebP',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
icon: 'mdi:check-circle',
|
|
148
|
+
items: [
|
|
149
|
+
'Publikowanie w internecie — Chrome, Firefox, Safari, Edge i wszystkie nowoczesne przeglądarki.',
|
|
150
|
+
'Media społecznościowe — Instagram, Twitter, Facebook natywnie akceptują format WebP.',
|
|
151
|
+
'Aplikacje internetowe i PWA — minimalne rozmiary dla natychmiastowego ładowania.',
|
|
152
|
+
'Wydajne archiwizowanie — zastępuje kolekcje starych plików BMP, oszczędzając gigabajty.',
|
|
153
|
+
'Marketing e-mailowy — lekkie obrazy, które ładują się szybko w każdym nowoczesnym kliencie pocztowym.',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'title',
|
|
158
|
+
text: 'Podsumowanie: najbardziej uderzająca konwersja za jednym kliknięciem',
|
|
159
|
+
level: 3,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'paragraph',
|
|
163
|
+
html: 'Jeśli posiadasz stare pliki BMP z systemu Windows, nieskompresowane zrzuty ekranu lub obrazy ze starych narzędzi, konwersja ich na format WebP to najbardziej uderzające działanie, jakie możesz podjąć, aby zoptymalizować miejsce na dysku i wydajność strony internetowej. Dzięki naszemu narzędziu konwersja jest natychmiastowa, prywatna i bez limitów — dokładnie tak, jak powinno być.',
|
|
164
|
+
},
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
export const content: BmpAWebpLocaleContent = {
|
|
169
|
+
slug,
|
|
170
|
+
title,
|
|
171
|
+
description,
|
|
172
|
+
ui,
|
|
173
|
+
seo,
|
|
174
|
+
faq,
|
|
175
|
+
bibliography,
|
|
176
|
+
howTo,
|
|
177
|
+
schemas: generateSchemas({ title, description, inLanguage: 'pl', faq, howTo }),
|
|
178
|
+
};
|