@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,177 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convert-bmp-to-png';
|
|
6
|
+
const title = 'BMP PNG 변환기';
|
|
7
|
+
const description =
|
|
8
|
+
'품질 저하 없이 BMP 이미지를 PNG로 변환하세요. 노이즈 없는 현대적인 압축 기술. 파일 업로드 없음. 무료이며 100% 안전한 로컬 변환.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'BMP 파일을 여기로 드래그하세요...',
|
|
12
|
+
convertText: '즉시 PNG로 변환하기',
|
|
13
|
+
selectFiles: '파일 선택',
|
|
14
|
+
processedFiles: '처리된 파일',
|
|
15
|
+
downloadAll: '모두 다운로드 (.zip)',
|
|
16
|
+
pending: '대기 중',
|
|
17
|
+
bibliographyTitle: '참고 문헌',
|
|
18
|
+
faqTitle: '자주 묻는 질문',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'BMP와 PNG의 가장 큰 차이점은 무엇인가요?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP와 PNG 모두 무손실 형식입니다. 차이점은 최적화에 있습니다. PNG는 현대적인 압축 알고리즘을 지원하여 BMP보다 5~10배 적은 메모리를 사용하면서도 동일한 이미지를 저장할 수 있습니다.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '변환 과정이 정말 안전한가요?',
|
|
29
|
+
answer:
|
|
30
|
+
'네. 모든 이미지 처리는 사용자의 기기 내에서 로컬로 수행됩니다. 외부 서버로 파일이 전송되지 않으므로 프라이버시가 완벽하게 보호됩니다.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '이 경우 JPEG 대신 PNG를 선택해야 하는 이유는 무엇인가요?',
|
|
34
|
+
answer:
|
|
35
|
+
'BMP 파일을 사용한다는 것은 이미지의 색상이 정밀하다는 것을 의미합니다. BMP를 손실 압축 방식인 JPEG로 변환하면 화질이 저하될 수 있지만, PNG는 원본의 충실도를 완벽하게 보존합니다.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: '이미지 불러오기',
|
|
42
|
+
text: 'BMP 원본 파일을 웹 페이지의 드롭 영역으로 안전하게 끌어다 놓으세요.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: '네트워크 전송 없는 무손실 변환',
|
|
46
|
+
text: 'HTML5 JS 기술을 통해 사용자의 브라우저에서 직접 수행되는 즉각적인 로컬 처리를 경험해 보세요.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: '순수 PNG 파일 생성',
|
|
50
|
+
text: '변환된 PNG 결과물을 개별적으로 또는 압축 파일 형태로 다운로드하세요.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'BMP to PNG 변환기: BMP 형식을 대체하는 완벽한 무손실 솔루션',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP는 압축되지 않은 형식으로, PNG와 비교했을 때 기술적인 이점 없이 방대한 저장 공간을 차지합니다. 두 형식 모두 픽셀 정보를 정확하게 저장하는 무손실 방식이지만, PNG는 Deflate 알고리즘을 통한 무손실 압축을 추가하여 시각적 정보의 손실 없이 파일 크기를 3~5배 줄여줍니다. PNG는 본질적으로 BMP가 지향해야 할 현대적인 대체제입니다.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP vs PNG: 동일한 화질, 혁신적인 용량 차이',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'BMP와 PNG의 근본적인 차이는 화질이 아니라 저장 효율성에 있습니다. BMP는 픽셀 데이터를 압축이나 최적화 없이 그대로 저장하여 공간을 낭비합니다. 반면 PNG는 반복되는 픽셀 패턴을 분석하고 ZIP 파일과 동일한 원리인 Deflate 방식의 압축을 통해 컴팩트하게 인코딩합니다.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: '또한 PNG는 투명도를 지원하는 알파 채널 기능을 갖추고 있어 로고, 아이콘, 인터페이스 디자인 등에 매우 유리합니다. BMP를 PNG로 변환하면 원본 색상 값을 정확하게 유지하면서도 파일 용량을 획기적으로 줄일 수 있습니다.',
|
|
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
|
+
'사용자의 이미지가 인터넷망을 통해 외부로 전송됨',
|
|
103
|
+
'BMP 파일 크기에 비례하여 업로드 성능이 저하됨',
|
|
104
|
+
'무료 서비스의 경우 용량 및 횟수 제한이 존재함',
|
|
105
|
+
'파일의 분석 또는 서버 저장에 따른 보안 리스크 발생 가능함',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '당사의 로컬 아키텍처',
|
|
110
|
+
description: 'Vanilla JS 기술을 통해 사용자의 하드웨어에서 직접 안전하게 처리합니다.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'BMP 처리가 로컬에서 수행되며 기기를 절대 벗어나지 않음',
|
|
115
|
+
'즉각적인 밀리초 단위의 변환 속도',
|
|
116
|
+
'파일 크기나 개수에 대한 인위적인 제한 없음',
|
|
117
|
+
'완벽한 프라이버시 보호: 외부로 0바이트 전송됨',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'BMP to PNG 로컬 변환 기술의 원리',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '이 프로세스는 HTML5 Canvas API를 활용합니다. BMP 파일은 브라우저의 <code>FileReader</code> API를 통해 메모리에 Blob 데이터로 읽혀지며, 보이지 않는 캔버스 위에 그려집니다. 그 후 브라우저 고유의 PNG 압축 알고리즘이 적용되어 원본과 시각적으로 동일하지만 용량은 훨씬 최적화된 결과물이 생성됩니다.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'JPEG 변환과 달리 PNG 변환은 완전한 무손실 과정입니다. 원본 BMP의 모든 색상 값이 결과물에 정확하게 보존되며, 가장자리 뭉개짐이나 정보 손실이 전혀 없습니다. 최종 파일은 육안으로 구분이 불가능할 정도로 동일하면서 디스크 공간은 3~5배 더 절약해 줍니다.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: '산업용 장비, 제어 시스템 또는 의료 진단 소프트웨어와 같이 BMP 형식을 주로 사용하는 환경에서 PNG로 변환하는 것은 매우 현명한 선택입니다. 현대의 모든 프로그램과 호환되며 용량 부담을 줄여줍니다. 이는 가장 효율적이고 안전한 시스템 현대화 방안 중 하나입니다.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: '변환된 PNG의 활용 사례 및 호환성',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'list',
|
|
146
|
+
icon: 'mdi:check-circle',
|
|
147
|
+
items: [
|
|
148
|
+
'원본 색상이 완벽하게 보존된 스크린샷 및 UI 그래픽 자료.',
|
|
149
|
+
'기술 문서용 정밀 이미지 및 소프트웨어 다이어그램.',
|
|
150
|
+
'CAD 데이터, 산업용 시스템 및 레거시 소프트웨어 파일 현대화.',
|
|
151
|
+
'투명 배경 테마가 적용된 로고 및 시각적 아이덴티티 요소.',
|
|
152
|
+
'포토샵, 피그마, GIMP 등 모든 최신 그래픽 편집 툴 지원.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: '결론: PNG는 BMP의 완벽한 미래형 대체제입니다',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'BMP를 PNG로 변환하는 것은 이미지 파일의 가장 자연스러운 현대화 방법입니다. 동일한 화질을 유지하면서도 더 넓은 호환성, 투명도 지원, 그리고 대폭 줄어든 용량을 제공합니다. 당사의 도구는 서버 업로드 없이 브라우저에서 즉시 이 작업을 완료해 드립니다.',
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const content: BmpAPngLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
|
|
177
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'bmp-naar-png-converter';
|
|
6
|
+
const title = 'BMP naar PNG Converter';
|
|
7
|
+
const description =
|
|
8
|
+
'Converteer BMP-afbeeldingen naar PNG zonder kwaliteitsverlies. Moderne compressie zonder artefacten. Zonder bestanden te uploaden. Gratis en 100% privé.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Sleep BMP-bestanden hierheen...',
|
|
12
|
+
convertText: 'Om ze direct naar PNG 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: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Wat is het belangrijkste verschil tussen BMP und PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'Zowel BMP als PNG zijn lossless formaten. Het verschil zit in de optimalisatie: PNG begrijpt moderne compressie-algoritmen om dezelfde afbeelding op te slaan met 5 of 10 keer minder geheugen dan BMP.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Is de conversie echt privé?',
|
|
29
|
+
answer:
|
|
30
|
+
'Ja. De volledige fotoverwerking wordt door je eigen computer gedaan. Absoluut niemand heeft toegang tot je bestanden tijdens de lokale overdracht.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Waarom kiezen voor PNG boven JPEG in dit geval?',
|
|
34
|
+
answer:
|
|
35
|
+
'Als je een BMP-bestand hebt, is dat omdat de afbeelding nauwkeurige kleuren heeft. Een BMP omzetten naar de destructieve JPG-standaard zou je pure kleuren vervuilen. PNG beschermt die getrouwheid.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Plaats je Foto',
|
|
42
|
+
text: 'Sleep de BMP-bronbestanden gerust naar onze zone voor het loslaten van web-elementen.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Conversie zonder Netwerkoverdracht',
|
|
46
|
+
text: 'Ervaar in slechts één seconde de schone verwerking die lokaal door je HTML5 JS wordt uitgevoerd.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Ontvang Zuivere PNG\'s',
|
|
50
|
+
text: 'Download de PNG-replica\'s individueel of via een gecomprimeerd pakket.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'BMP naar PNG Converter: De Verliesvrije Vervanging van het BMP-formaat',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP is een ongecomprimeerd formaat dat enorme hoeveelheden ruimte in beslag neemt zonder enig technisch voordeel ten opzichte van PNG. Beide zijn lossless formaten: ze slaan elke pixel met absolute nauwkeurigheid op. Maar PNG voegt verliesvrije compressie toe via het Deflate-algoritme, waardoor de bestandsgrootte met 3 tot 5 keer wordt verminderd zonder dat er ook maar één bit aan visuele informatie wordt opgeofferd. PNG is in wezen wat BMP altijd al had willen zijn.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP vs PNG: dezelfde kwaliteit, radicaal verschillende grootte',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Het fundamentele verschil tussen BMP en PNG zit niet in de beeldkwaliteit — beide zijn lossless — maar in de opslagefficiëntie. BMP slaat pixels ruw op: zonder compressie, zonder optimalisatie, zonder rekening te houden met de ruimte. PNG analyseert herhalende pixelpatronen en codeert ze compact via Deflate, hetzelfde algoritme dat ZIP gebruikt.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Naast de superieure compressie voegt PNG een kenmerk toe dat BMP nooit heeft gehad: een volledig alfaknaal voor transparantie. Screenshots, interface-graphics, logo\'s, technische diagrammen: al dit soort afbeeldingen profiteren enorm van de conversie naar PNG, die elke exacte kleurwaarde behoudt terwijl het bestandsgewicht tot een fractie van het origineel wordt gereduceerd.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Vergelijking van Architectuur: Lokaal vs Cloud',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Cloud Converters',
|
|
98
|
+
description: 'Diensten die je BMP-bestanden verwerken op servers van derden.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Je werkafbeeldingen reizen over het internet',
|
|
103
|
+
'Wachttijd proportioneel aan de grootte van de BMP',
|
|
104
|
+
'Limieten voor bestandsgrootte in gratis abonnementen',
|
|
105
|
+
'Risico op analyse of bewaring van je bestanden',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Onze Lokale Architectuur',
|
|
110
|
+
description: 'Directe verwerking op je eigen hardware via Vanilla JS-technologie.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'De BMP wordt lokaal verwerkt en verlaat nooit je apparaat',
|
|
115
|
+
'Directe conversie in milliseconden',
|
|
116
|
+
'Zonder limieten voor bestandsgrootte of aantal bestanden',
|
|
117
|
+
'Volledige privacy: 0 bytes naar buiten verzonden',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Hoe de lokale conversie van BMP naar PNG werkt',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Het proces maakt gebruik van de Canvas API van HTML5. Het BMP-bestand wordt gelezen met de <code>FileReader</code> API van de browser en gedecodeerd als een Blob in het geheugen. Die Blob wordt getekend op een onzichtbaar HTML5 canvas. Vervolgens past de methode <code>toDataURL(\'image/png\')</code> het eigen PNG-compressiealgoritme van de browser toe en genereert het resulterende bestand.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'In tegenstelling tot de conversie naar JPG is de conversie naar PNG volledig lossless: elke kleurwaarde van de originele BMP blijft exact behouden in de resulterende PNG. Er zijn geen artefacten, geen randvervaging, geen informatieverlies. Het uiteindelijke bestand is visueel identiek aan de BMP, maar neemt 3 tot 5 keer minder schijfruimte in beslag.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Als je werkt met oude software die BMP exporteert (industriële machines, controlesystemen, medische diagnosesoftware), is converteren naar PNG de beste beslissing. PNG is compatibel met nagenoeg alle moderne programma\'s, behoudt de perfecte kleurgetrouwheid en neemt tot 5 keer minder ruimte in beslag. Het is de eenvoudigst mogelijke en veiligste migratie.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: 'Gebruiksscenario\'s en compatibiliteit van de resulterende PNG',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'list',
|
|
146
|
+
icon: 'mdi:check-circle',
|
|
147
|
+
items: [
|
|
148
|
+
'Screenshots en interface-graphics met behoud van exacte kleuren.',
|
|
149
|
+
'Afbeeldingen voor technische documentatie en software-diagrammen.',
|
|
150
|
+
'Exports uit CAD, industriële systemen en legacy-software.',
|
|
151
|
+
'Logo\'s en visuele identiteitselementen met toegevoegde transparantie.',
|
|
152
|
+
'Compatibel met Adobe Photoshop, GIMP, Figma en alle moderne editors.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: 'Conclusie: PNG is wat BMP altijd had moeten zijn',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'BMP naar PNG converteren is de meest natuurlijke modernisering van een afbeeldingsbestand: dezelfde lossless kwaliteit, grotere compatibiliteit, ondersteuning voor transparantie en een 3 tot 5 keer lager gewicht. Onze tool voert deze conversie in milliseconden uit, direct in je browser, zonder bestanden naar een server te uploaden.',
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const content: BmpAPngLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({ title, description, inLanguage: 'nl', faq, howTo }),
|
|
177
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
2
|
+
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'konwerter-bmp-na-png';
|
|
6
|
+
const title = 'Konwerter BMP na PNG';
|
|
7
|
+
const description =
|
|
8
|
+
'Konwertuj obrazy BMP na PNG bez utraty jakości. Nowoczesna kompresja bez artefaktów. Bez przesyłania plików. Darmowy i w 100% prywatny.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Przeciągnij pliki BMP...',
|
|
12
|
+
convertText: 'Aby błyskawicznie konwertować je na PNG',
|
|
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: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Jaka jest główna różnica między BMP a PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'Zarówno BMP, jak i PNG to formaty bezstratne. Różnica polega na optymalizacji: PNG wykorzystuje nowoczesne algorytmy kompresji, aby zapisać ten sam obraz, zajmując 5 lub 10 razy mniej pamięci niż BMP.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Czy konwersja jest naprawdę prywatna?',
|
|
29
|
+
answer:
|
|
30
|
+
'Tak. Całe przetwarzanie obrazu jest wykonywane przez Twój komputer. Absolutnie nikt nie ma dostępu do Twoich plików podczas lokalnego transferu.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Dlaczego warto wybrać PNG zamiast JPEG w tym przypadku?',
|
|
34
|
+
answer:
|
|
35
|
+
'Jeśli posiadasz plik BMP, to dlatego, że obraz ma precyzyjne kolory. Przekonwertowanie BMP na stratny standard JPG zniekształciłoby te czyste kolory. PNG chroni tę wierność.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Wstaw zdjęcie',
|
|
42
|
+
text: 'Przesuń spokojnie pliki źródłowe BMP do naszej strefy upuszczania elementów internetowych.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Konwersja bez transmisji sieciowej',
|
|
46
|
+
text: 'Zobacz w zaledwie sekundę czyste przetwarzanie wykonane lokalnie przez silnik JS Twojej przeglądarki.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Uzyskaj czyste pliki PNG',
|
|
50
|
+
text: 'Pobierz kopie w formacie PNG pojedynczo lub w skompresowanym pakiecie.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Konwerter BMP na PNG: Bezstratny zamiennik formatu BMP',
|
|
69
|
+
level: 2,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'BMP to format bez kompresji, który zajmuje ogromną ilość miejsca bez żadnych korzyści technicznych w porównaniu do PNG. Oba te formaty są bezstratne: przechowują każdy piksel z absolutną precyzją. PNG dodaje jednak bezstratną kompresję za pomocą algorytmu Deflate, co zmniejsza rozmiar pliku od 3 do 5 razy bez poświęcania ani jednego bitu informacji wizualnej. PNG to w gruncie rzeczy to, czym BMP zawsze chciał być.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'BMP vs PNG: ta sama jakość, radykalnie inna waga',
|
|
78
|
+
level: 3,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Podstawowa różnica między BMP a PNG nie polega na jakości obrazu — oba formaty są bezstratne — ale na efektywności przechowywania. BMP przechowuje surowe piksele: bez kompresji, bez optymalizacji, bez zważania na miejsce. PNG analizuje powtarzające się wzorce pikseli i koduje je w sposób kompaktowy za pomocą Deflate, tego samego algorytmu, którego używa ZIP.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Oprócz doskonałej kompresji PNG dodaje cechę, której BMP nigdy nie posiadał: pełny kanał alfa dla przezroczystości. Zrzuty ekranu, grafika interfejsu, logo, diagramy techniczne: wszystkie te typy obrazów zyskują ogromnie na konwersji do PNG, która zachowuje każdą dokładną wartość koloru, redukując jednocześnie wagę pliku do ułamka oryginału.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Porównanie architektury: lokalna kontra chmurowa',
|
|
91
|
+
level: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'comparative',
|
|
95
|
+
items: [
|
|
96
|
+
{
|
|
97
|
+
title: 'Konwertery w chmurze',
|
|
98
|
+
description: 'Usługi przetwarzające pliki BMP na serwerach zewnętrznych.',
|
|
99
|
+
icon: 'mdi:cloud-upload',
|
|
100
|
+
pointIcon: 'mdi:close-circle-outline',
|
|
101
|
+
points: [
|
|
102
|
+
'Twoje obrazy robocze wędrują przez internet',
|
|
103
|
+
'Czas oczekiwania proporcjonalny do rozmiaru BMP',
|
|
104
|
+
'Limity rozmiaru w planach darmowych',
|
|
105
|
+
'Ryzyko analizy lub zatrzymania Twoich plików',
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Nasza lokalna architektura',
|
|
110
|
+
description: 'Przetwarzanie bezpośrednio na Twoim sprzęcie za pomocą technologii Vanilla JS.',
|
|
111
|
+
icon: 'mdi:laptop-mac',
|
|
112
|
+
highlight: true,
|
|
113
|
+
points: [
|
|
114
|
+
'BMP jest przetwarzany lokalnie, nigdy nie opuszcza Twojego urządzenia',
|
|
115
|
+
'Natychmiastowa konwersja w milisekundach',
|
|
116
|
+
'Brak limitów rozmiaru i liczby plików',
|
|
117
|
+
'Całkowita prywatność: 0 bajtów wysłanych na zewnątrz',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Jak działa lokalna konwersja z BMP na PNG',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Proces wykorzystuje interfejs API Canvas języka HTML5. Plik BMP jest odczytywany za pomocą interfejsu API <code>FileReader</code> przeglądarki i dekodowany jako obiekt Blob w pamięci. Ten Blob jest rysowany na niewidocznym płótnie HTML5. Następnie metoda <code>toDataURL(\'image/png\')</code> stosuje natywny algorytm kompresji PNG przeglądarki i generuje wynikowy plik.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: 'W przeciwieństwie do konwersji na JPG, konwersja na PNG jest całkowicie bezstratna: każda wartość koloru oryginalnego BMP jest dokładnie zachowana w wynikowym pliku PNG. Nie ma artefaktów, nie ma wygładzania krawędzi, nie ma utraty informacji. Plik końcowy jest wizualnie identyczny z BMP, ale zajmuje od 3 do 5 razy mniej miejsca na dysku.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: 'Jeśli pracujesz ze starszym oprogramowaniem eksportującym BMP (maszyny przemysłowe, systemy sterowania, oprogramowanie do diagnostyki medycznej), konwersja na PNG jest najlepszą decyzją. PNG jest kompatybilny z absolutnie wszystkimi nowoczesnymi programami, zachowuje idealną wierność kolorów i zajmuje do 5 razy mniej miejsca. To najprostsza i najbezpieczniejsza możliwa migracja.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: 'Przypadki użycia i kompatybilność wynikowego pliku PNG',
|
|
142
|
+
level: 3,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'list',
|
|
146
|
+
icon: 'mdi:check-circle',
|
|
147
|
+
items: [
|
|
148
|
+
'Zrzuty ekranu i grafiki interfejsu z zachowaniem dokładnych kolorów.',
|
|
149
|
+
'Obrazy dokumentacji technicznej i diagramy oprogramowania.',
|
|
150
|
+
'Eksporty z programów CAD, systemów przemysłowych i starszego oprogramowania.',
|
|
151
|
+
'Logo i elementy identyfikacji wizualnej z dodaną przezroczystością.',
|
|
152
|
+
'Kompatybilność z programami Adobe Photoshop, GIMP, Figma i wszystkimi nowoczesnymi edytorami.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'title',
|
|
157
|
+
text: 'Podsumowanie: PNG jest tym, czym BMP zawsze powinien był być',
|
|
158
|
+
level: 3,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'paragraph',
|
|
162
|
+
html: 'Konwersja z BMP na PNG to najbardziej naturalna modernizacja pliku graficznego: ta sama bezstratna jakość, większa kompatybilność, obsługa przezroczystości i od 3 do 5 razy mniejsza waga. Nasze narzędzie wykonuje tę konwersję w milisekundach, bezpośrednio w przeglądarce, bez przesyłania plików na serwer.',
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
export const content: BmpAPngLocaleContent = {
|
|
168
|
+
slug,
|
|
169
|
+
title,
|
|
170
|
+
description,
|
|
171
|
+
ui,
|
|
172
|
+
seo,
|
|
173
|
+
faq,
|
|
174
|
+
bibliography,
|
|
175
|
+
howTo,
|
|
176
|
+
schemas: generateSchemas({ title, description, inLanguage: 'pl', faq, howTo }),
|
|
177
|
+
};
|