@jjlmoya/utils-audiovisual 1.7.0 → 1.9.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 -1
- package/src/category/i18n/de.ts +198 -0
- package/src/category/i18n/id.ts +198 -0
- package/src/category/i18n/it.ts +198 -0
- package/src/category/i18n/ja.ts +198 -0
- package/src/category/i18n/ko.ts +198 -0
- package/src/category/i18n/nl.ts +198 -0
- package/src/category/i18n/pl.ts +198 -0
- package/src/category/i18n/pt.ts +198 -0
- package/src/category/i18n/ru.ts +198 -0
- package/src/category/i18n/sv.ts +198 -0
- package/src/category/i18n/tr.ts +198 -0
- package/src/category/i18n/zh.ts +198 -0
- package/src/category/index.ts +31 -3
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tool/chromaticLens/i18n/de.ts +246 -0
- package/src/tool/chromaticLens/i18n/id.ts +246 -0
- package/src/tool/chromaticLens/i18n/it.ts +246 -0
- package/src/tool/chromaticLens/i18n/ja.ts +246 -0
- package/src/tool/chromaticLens/i18n/ko.ts +246 -0
- package/src/tool/chromaticLens/i18n/nl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pt.ts +246 -0
- package/src/tool/chromaticLens/i18n/ru.ts +246 -0
- package/src/tool/chromaticLens/i18n/sv.ts +246 -0
- package/src/tool/chromaticLens/i18n/tr.ts +246 -0
- package/src/tool/chromaticLens/i18n/zh.ts +246 -0
- package/src/tool/chromaticLens/index.ts +15 -7
- package/src/tool/collageMaker/i18n/de.ts +233 -0
- package/src/tool/collageMaker/i18n/id.ts +233 -0
- package/src/tool/collageMaker/i18n/it.ts +233 -0
- package/src/tool/collageMaker/i18n/ja.ts +233 -0
- package/src/tool/collageMaker/i18n/ko.ts +233 -0
- package/src/tool/collageMaker/i18n/nl.ts +233 -0
- package/src/tool/collageMaker/i18n/pl.ts +233 -0
- package/src/tool/collageMaker/i18n/pt.ts +233 -0
- package/src/tool/collageMaker/i18n/ru.ts +233 -0
- package/src/tool/collageMaker/i18n/sv.ts +233 -0
- package/src/tool/collageMaker/i18n/tr.ts +233 -0
- package/src/tool/collageMaker/i18n/zh.ts +233 -0
- package/src/tool/collageMaker/index.ts +15 -6
- package/src/tool/exifCleaner/i18n/de.ts +277 -0
- package/src/tool/exifCleaner/i18n/fr.ts +1 -1
- package/src/tool/exifCleaner/i18n/id.ts +277 -0
- package/src/tool/exifCleaner/i18n/it.ts +277 -0
- package/src/tool/exifCleaner/i18n/ja.ts +277 -0
- package/src/tool/exifCleaner/i18n/ko.ts +277 -0
- package/src/tool/exifCleaner/i18n/nl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pt.ts +277 -0
- package/src/tool/exifCleaner/i18n/ru.ts +277 -0
- package/src/tool/exifCleaner/i18n/sv.ts +277 -0
- package/src/tool/exifCleaner/i18n/tr.ts +277 -0
- package/src/tool/exifCleaner/i18n/zh.ts +277 -0
- package/src/tool/exifCleaner/index.ts +16 -8
- package/src/tool/imageCompressor/i18n/de.ts +242 -0
- package/src/tool/imageCompressor/i18n/en.ts +1 -1
- package/src/tool/imageCompressor/i18n/es.ts +1 -1
- package/src/tool/imageCompressor/i18n/id.ts +242 -0
- package/src/tool/imageCompressor/i18n/it.ts +242 -0
- package/src/tool/imageCompressor/i18n/ja.ts +242 -0
- package/src/tool/imageCompressor/i18n/ko.ts +242 -0
- package/src/tool/imageCompressor/i18n/nl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pt.ts +242 -0
- package/src/tool/imageCompressor/i18n/ru.ts +242 -0
- package/src/tool/imageCompressor/i18n/sv.ts +242 -0
- package/src/tool/imageCompressor/i18n/tr.ts +242 -0
- package/src/tool/imageCompressor/i18n/zh.ts +244 -0
- package/src/tool/imageCompressor/index.ts +15 -7
- package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/fr.ts +1 -1
- package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
- package/src/tool/printQualityCalculator/index.ts +15 -7
- package/src/tool/privacyBlur/i18n/de.ts +238 -0
- package/src/tool/privacyBlur/i18n/id.ts +238 -0
- package/src/tool/privacyBlur/i18n/it.ts +238 -0
- package/src/tool/privacyBlur/i18n/ja.ts +238 -0
- package/src/tool/privacyBlur/i18n/ko.ts +238 -0
- package/src/tool/privacyBlur/i18n/nl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pt.ts +238 -0
- package/src/tool/privacyBlur/i18n/ru.ts +238 -0
- package/src/tool/privacyBlur/i18n/sv.ts +238 -0
- package/src/tool/privacyBlur/i18n/tr.ts +238 -0
- package/src/tool/privacyBlur/i18n/zh.ts +238 -0
- package/src/tool/privacyBlur/index.ts +15 -7
- package/src/tool/subtitleSync/i18n/de.ts +241 -0
- package/src/tool/subtitleSync/i18n/fr.ts +5 -5
- package/src/tool/subtitleSync/i18n/id.ts +241 -0
- package/src/tool/subtitleSync/i18n/it.ts +241 -0
- package/src/tool/subtitleSync/i18n/ja.ts +241 -0
- package/src/tool/subtitleSync/i18n/ko.ts +241 -0
- package/src/tool/subtitleSync/i18n/nl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pt.ts +241 -0
- package/src/tool/subtitleSync/i18n/ru.ts +241 -0
- package/src/tool/subtitleSync/i18n/sv.ts +241 -0
- package/src/tool/subtitleSync/i18n/tr.ts +241 -0
- package/src/tool/subtitleSync/i18n/zh.ts +241 -0
- package/src/tool/subtitleSync/index.ts +15 -7
- package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
- package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +16 -8
- package/src/tool/tvDistance/i18n/de.ts +223 -0
- package/src/tool/tvDistance/i18n/id.ts +223 -0
- package/src/tool/tvDistance/i18n/it.ts +223 -0
- package/src/tool/tvDistance/i18n/ja.ts +223 -0
- package/src/tool/tvDistance/i18n/ko.ts +223 -0
- package/src/tool/tvDistance/i18n/nl.ts +223 -0
- package/src/tool/tvDistance/i18n/pl.ts +223 -0
- package/src/tool/tvDistance/i18n/pt.ts +223 -0
- package/src/tool/tvDistance/i18n/ru.ts +223 -0
- package/src/tool/tvDistance/i18n/sv.ts +223 -0
- package/src/tool/tvDistance/i18n/tr.ts +223 -0
- package/src/tool/tvDistance/i18n/zh.ts +223 -0
- package/src/tool/tvDistance/index.ts +15 -7
- package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +16 -8
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ChromaticLensUI, ChromaticLensLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'chromatic-lens-ekstrakcja-palety-kolorow-online';
|
|
5
|
+
const title = 'Chromatic Lens: Ekstrakcja Palety Kolorów Online';
|
|
6
|
+
const description = 'Wyodrębnij profesjonalne palety kolorów z dowolnego obrazu za darmo. Zidentyfikuj dominujące kolory w swoich zdjęciach za pomocą algorytmów matematycznych.';
|
|
7
|
+
|
|
8
|
+
const ui: ChromaticLensUI = {
|
|
9
|
+
dropTitle: "Analizuj Kolory",
|
|
10
|
+
dropSubtitle: "Przeciągnij obraz, aby wyodrębnić jego chromatyczne DNA.",
|
|
11
|
+
processingLabel: "Wyodrębnianie palety...",
|
|
12
|
+
paletteTitle: "Wyodrębniona Paleta",
|
|
13
|
+
copyLabel: "Kopiuj HEX",
|
|
14
|
+
copiedLabel: "Skopiowano!",
|
|
15
|
+
colorCountLabel: "Liczba kolorów",
|
|
16
|
+
changeImage: "Zmień obraz",
|
|
17
|
+
faqTitle: "Często zadawane pytania dotyczące ekstrakcji kolorów",
|
|
18
|
+
bibliographyTitle: "Zasoby i dokumentacja techniczna"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: ChromaticLensLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: "Jak działa ekstrakcja kolorów?",
|
|
24
|
+
answer: "Używamy algorytmu 'Median Cut', który grupuje piksele obrazu według ich bliskości w przestrzeni kolorów RGB, aby znaleźć najbardziej reprezentatywne tony.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: "Czy mogę kopiować kolory do mojego edytora graficznego?",
|
|
28
|
+
answer: "Tak, klikając na każdy kolor, kod HEX zostanie automatycznie skopiowany do schowka, gotowy do wklejenia w Photoshopie, Figmie lub CSS.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
question: "Jakie typy obrazów mogę analizować?",
|
|
32
|
+
answer: "Dowolny plik JPG, PNG lub WebP. Przetwarzanie odbywa się lokalnie, więc duże obrazy zostaną przeanalizowane szybko, bez zużywania danych sieciowych.",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const howTo: ChromaticLensLocaleContent['howTo'] = [
|
|
37
|
+
{
|
|
38
|
+
name: "Prześlij obraz",
|
|
39
|
+
text: "Prześlij zdjęcie, z którego chcesz wyodrębnić chromatyczną inspirację.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Dostosuj precyzję",
|
|
43
|
+
text: "Wybierz, ile dominujących kolorów ma zidentyfikować narzędzie (od 3 do 12).",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Przeanalizuj wynik",
|
|
47
|
+
text: "Paleta pojawi się natychmiast wraz z odpowiednimi kodami szesnastkowymi.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Kopiuj i używaj",
|
|
51
|
+
text: "Kliknij na odcienie, aby je zapisać i zastosować w swoim projekcie projektowym.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const bibliography: ChromaticLensLocaleContent['bibliography'] = [
|
|
56
|
+
{
|
|
57
|
+
name: "Median Cut Algorithm - Wikipedia",
|
|
58
|
+
url: "https://en.wikipedia.org/wiki/Median_cut",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Teoria Koloru dla Projektantów",
|
|
62
|
+
url: "https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/",
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seo: ChromaticLensLocaleContent['seo'] = [
|
|
67
|
+
{
|
|
68
|
+
type: 'summary',
|
|
69
|
+
title: 'Inteligentna Ekstrakcja Palety Kolorów',
|
|
70
|
+
items: [
|
|
71
|
+
'Profesjonalny algorytm Median Cut do analizy kolorów',
|
|
72
|
+
'Wyodrębnij 3-12 dominujących kolorów z dowolnego obrazu',
|
|
73
|
+
'Kody HEX kopiowalne bezpośrednio do schowka',
|
|
74
|
+
'Przetwarzanie w 100% lokalne - idealne dla kreatywnych'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{ type: 'title', text: 'Ekstrakcja Palety Kolorów: Nauka i Projektowanie', level: 2 },
|
|
78
|
+
{ type: 'paragraph', html: 'Czy kiedykolwiek zastanawiałeś się, dlaczego kadr filmowy wydaje się tak harmonijny? To nie przypadek; to teoria koloru w działaniu. Chromatic Lens pozwala wyodrębnić tę harmonię bezpośrednio z piksela, przekształcając ją w kody HEX gotowe do użycia w Twoich projektach projektowych.' },
|
|
79
|
+
|
|
80
|
+
{ type: 'stats', items: [
|
|
81
|
+
{ value: 'Natychmiast', label: 'Analiza Koloru', icon: 'mdi:lightning-bolt' },
|
|
82
|
+
{ value: '100%', label: 'Lokalna Prywatność', icon: 'mdi:lock' },
|
|
83
|
+
{ value: 'RGB', label: 'Precyzyjna Przestrzeń Barw', icon: 'mdi:palette' }
|
|
84
|
+
], columns: 3 },
|
|
85
|
+
|
|
86
|
+
{ type: 'title', text: 'Wyjaśnienie Algorytmu Median Cut', level: 3 },
|
|
87
|
+
{ type: 'paragraph', html: 'Inteligentna ekstrakcja palety nie jest prostym losowym próbkowaniem pikseli. Wykorzystuje algorytm Median Cut, technikę rekurencyjnego partycjonowania, która zapewnia wierne odwzorowanie:' },
|
|
88
|
+
{ type: 'list', items: [
|
|
89
|
+
'<strong>Podział Rekurencyjny:</strong> „Kostka kolorów” RGB obrazu jest rekurencyjnie dzielona na mniejsze pudełka.',
|
|
90
|
+
'<strong>Równowaga Objętości:</strong> Każda partycja dąży do pogrupowania pikseli z tej samej przestrzeni barw o podobnych objętościach.',
|
|
91
|
+
'<strong>Średnia Ważona:</strong> Wynikowy kolor każdego pudełka jest średnią wszystkich pikseli, które zawiera.',
|
|
92
|
+
'<strong>Wierne Odwzorowanie:</strong> Dominujące kolory odzwierciedlają rzeczywistą atmosferę wizualną obrazu, a nie prostą próbkę.'
|
|
93
|
+
], icon: 'mdi:check' },
|
|
94
|
+
|
|
95
|
+
{ type: 'card', title: 'Kreatywny Przepływ Pracy', html: 'Idealny dla programistów stron internetowych, projektantów UX/UI, artystów cyfrowych i kreatywnych osób, które chcą natychmiast uchwycić wizualną esencję zdjęcia, filmu lub odniesienia wizualnego, aby zastosować je w swoich interfejsach, ilustracjach lub paletach marki.' },
|
|
96
|
+
|
|
97
|
+
{ type: 'title', text: 'Przypadki Użycia w Projektowaniu Cyfrowym', level: 3 },
|
|
98
|
+
{ type: 'comparative', items: [
|
|
99
|
+
{
|
|
100
|
+
title: 'Projektanci UX/UI',
|
|
101
|
+
description: 'Wyodrębniaj palety z obrazów hero, aby tworzyć spójne interfejsy',
|
|
102
|
+
icon: 'mdi:palette',
|
|
103
|
+
points: [
|
|
104
|
+
'Harmonijne kolory tła',
|
|
105
|
+
'Przyciski i elementy pomocnicze',
|
|
106
|
+
'Automatycznie obliczony kontrast'
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Programiści Web',
|
|
111
|
+
description: 'Twórz arkusze stylów CSS bezpośrednio z odniesień wizualnych',
|
|
112
|
+
icon: 'mdi:code-braces',
|
|
113
|
+
points: [
|
|
114
|
+
'Kopiuj HEX bezpośrednio do CSS',
|
|
115
|
+
'Zmienne kolorystyczne w SCSS/CSS',
|
|
116
|
+
'Spójne motywy bez wcześniejszego projektu'
|
|
117
|
+
],
|
|
118
|
+
highlight: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
title: 'Artyści Cyfrowi i Ilustratorzy',
|
|
122
|
+
description: 'Uchwyć chromatyczne odniesienia z filmów, natury lub sztuki',
|
|
123
|
+
icon: 'mdi:brush',
|
|
124
|
+
points: [
|
|
125
|
+
'Palety referencyjne z arcydzieł',
|
|
126
|
+
'Filmowe studia kolorystyczne',
|
|
127
|
+
'Natychmiastowa inspiracja wizualna'
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Specjaliści ds. Brandingu',
|
|
132
|
+
description: 'Twórz tożsamości wizualne w oparciu o zdjęcia przewodnie',
|
|
133
|
+
icon: 'mdi:tag-multiple',
|
|
134
|
+
points: [
|
|
135
|
+
'Wyodrębnij kolory marki z obrazów',
|
|
136
|
+
'Twórz profesjonalne przewodniki chromatyczne',
|
|
137
|
+
'Zapewnij spójność wizualną'
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
], columns: 2 },
|
|
141
|
+
|
|
142
|
+
{ type: 'title', text: 'Stosowana Teoria Koloru', level: 3 },
|
|
143
|
+
{ type: 'table', headers: ['Koncepcja Koloru', 'Definicja', 'Zastosowanie Praktyczne'], rows: [
|
|
144
|
+
['Harmonia Chromatyczna', 'Kombinacja kolorów, która jest wizualnie zrównoważona', 'Spójna tożsamość wizualna w UI'],
|
|
145
|
+
['Kontrast', 'Różnica jasności między kolorami', 'Czytelność i hierarchia wizualna'],
|
|
146
|
+
['Nasycenie', 'Intensywność koloru tonu', 'Profesjonalizm (niskie) vs Energia (wysokie)'],
|
|
147
|
+
['Temperatura Koloru', 'Ciepłe kolory (czerwienie) vs chłodne kolory (niebieskie)', 'Psychologia emocjonalna projektowania'],
|
|
148
|
+
['Paleta Monochromatyczna', 'Wariacje pojedynczego tonu', 'Elegancja i minimalizm']
|
|
149
|
+
] },
|
|
150
|
+
|
|
151
|
+
{ type: 'proscons', items: [
|
|
152
|
+
{
|
|
153
|
+
pro: 'Matematyczna precyzja ekstrakcji - to nie jest przybliżony wybór wizualny',
|
|
154
|
+
con: 'Słabo widoczne kolory mogą zostać uwzględnione, jeśli mają wiele pikseli'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Natychmiastowe kopiowanie do schowka - idealna integracja z przepływem pracy',
|
|
158
|
+
con: 'Wymaga nowoczesnej przeglądarki kompatybilnej z Canvas API'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Całkowita prywatność - 100% lokalna analiza bez przesyłania danych',
|
|
162
|
+
con: 'Historia poprzednich analiz nie jest zapisywana'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pro: 'Kompatybilny z dowolnym formatem obrazu cyfrowego',
|
|
166
|
+
con: 'Ostateczne kolory zależą od kompresji i jakości obrazu'
|
|
167
|
+
}
|
|
168
|
+
], proTitle: 'Zalety', conTitle: 'Ograniczenia' },
|
|
169
|
+
|
|
170
|
+
{ type: 'diagnostic', variant: 'success', title: 'Realistyczne Odwzorowanie Kolorów', icon: 'mdi:check-circle-outline', badge: 'Zaawansowany Algorytm', html: 'W przeciwieństwie do narzędzi, które po prostu próbkują losowe piksele, nasz system wykorzystuje algorytm Median Cut, który waży całkowitą liczbę pikseli każdego tonu, zapewniając, że wynikowa paleta wiernie odzwierciedla wizualną atmosferę i psychologię kolorów oryginalnego obrazu.' },
|
|
171
|
+
|
|
172
|
+
{ type: 'glossary', items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Median Cut',
|
|
175
|
+
definition: 'Algorytm kwantyzacji kolorów, który rekurencyjnie dzieli przestrzeń RGB na pudełka, zapewniając jednolity rozkład. Historycznie stosowany w technologii GIF i kolorów indeksowanych.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Przestrzeń Barw RGB',
|
|
179
|
+
definition: 'Model kolorów oparty na czerwieni, zieleni i niebieskim. Każdy kolor reprezentowany jest jako kombinacja tych trzech wartości (0-255). Standard na ekranach cyfrowych i w Internecie.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Kod HEX',
|
|
183
|
+
definition: '6-cyfrowy zapis szesnastkowy (#RRGGBB) reprezentujący kolor w Internecie: #FF0000 (czerwony), #00FF00 (zielony), #0000FF (niebieski). Uniwersalny w CSS, Figmie i środowisku Adobe.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Nasycenie Koloru',
|
|
187
|
+
definition: 'Intensywność lub czystość koloru. Wysokie nasycenie = żywy kolor; niskie nasycenie = kolor szarawy. Wpływa na emocjonalny odbiór projektu.'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
term: 'Harmonia Chromatyczna',
|
|
191
|
+
definition: 'Dobór i kombinacja kolorów dająca wizualnie przyjemny efekt. Może być monochromatyczna, dopełniająca, analogiczna lub triadyczna.'
|
|
192
|
+
}
|
|
193
|
+
] },
|
|
194
|
+
|
|
195
|
+
{ type: 'message', title: 'Profesjonalna Analiza Chromatyczna', ariaLabel: 'Informacje techniczne o analizie kolorów', html: 'Chromatic Lens zamienia ręczną analizę wizualną w algorytmiczną precyzję. Nie tylko wyodrębnia kolory: uchwyci emocjonalną i wizualną esencję dowolnego obrazu, umieszczając ją bezpośrednio w schowku jako gotowe do użycia kody HEX. Pełna prywatność, brak limitów objętości analiz.' },
|
|
196
|
+
|
|
197
|
+
{ type: 'title', text: 'Projektowanie z Wizualnej Inspiracji', level: 3 },
|
|
198
|
+
{ type: 'paragraph', html: 'Najlepsza paleta kolorów to taka, która oddaje wizualną intencję Twojego punktu odniesienia. Chromatic Lens automatyzuje to, co kiedyś było procesem ręcznym: obserwację, analizę, notowanie. Teraz po prostu przeciągnij obraz i uzyskaj profesjonalne kody HEX w ciągu kilku sekund.' }
|
|
199
|
+
];
|
|
200
|
+
|
|
201
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
202
|
+
'@context': 'https://schema.org',
|
|
203
|
+
'@type': 'FAQPage',
|
|
204
|
+
mainEntity: faq.map((item) => ({
|
|
205
|
+
'@type': 'Question',
|
|
206
|
+
name: item.question,
|
|
207
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
208
|
+
})),
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const howToSchema: WithContext<HowTo> = {
|
|
212
|
+
'@context': 'https://schema.org',
|
|
213
|
+
'@type': 'HowTo',
|
|
214
|
+
name: title,
|
|
215
|
+
description,
|
|
216
|
+
step: howTo.map((step) => ({
|
|
217
|
+
'@type': 'HowToStep',
|
|
218
|
+
name: step.name,
|
|
219
|
+
text: step.text,
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
224
|
+
'@context': 'https://schema.org',
|
|
225
|
+
'@type': 'SoftwareApplication',
|
|
226
|
+
name: title,
|
|
227
|
+
description,
|
|
228
|
+
applicationCategory: 'UtilitiesApplication',
|
|
229
|
+
operatingSystem: 'Web',
|
|
230
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
231
|
+
inLanguage: 'pl',
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const content: ChromaticLensLocaleContent = {
|
|
235
|
+
slug,
|
|
236
|
+
title,
|
|
237
|
+
description,
|
|
238
|
+
ui,
|
|
239
|
+
seo,
|
|
240
|
+
faqTitle: "Często Zadawane Pytania",
|
|
241
|
+
faq,
|
|
242
|
+
bibliographyTitle: "Referencje",
|
|
243
|
+
bibliography,
|
|
244
|
+
howTo,
|
|
245
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
246
|
+
};
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ChromaticLensUI, ChromaticLensLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'chromatic-lens-extracao-paleta-cores-online';
|
|
5
|
+
const title = 'Chromatic Lens: Extração de Paleta de Cores Online';
|
|
6
|
+
const description = 'Extraia paletas de cores profissionais de qualquer imagem gratuitamente. Identifique cores dominantes nas suas fotos usando algoritmos matemáticos.';
|
|
7
|
+
|
|
8
|
+
const ui: ChromaticLensUI = {
|
|
9
|
+
dropTitle: "Analisar Cores",
|
|
10
|
+
dropSubtitle: "Arraste uma imagem para extrair o seu ADN cromático.",
|
|
11
|
+
processingLabel: "A extrair paleta...",
|
|
12
|
+
paletteTitle: "Paleta Extraída",
|
|
13
|
+
copyLabel: "Copiar HEX",
|
|
14
|
+
copiedLabel: "Copiado!",
|
|
15
|
+
colorCountLabel: "Número de cores",
|
|
16
|
+
changeImage: "Alterar imagem",
|
|
17
|
+
faqTitle: "Perguntas frequentes sobre extração de cores",
|
|
18
|
+
bibliographyTitle: "Recursos e documentação técnica"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: ChromaticLensLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: "Como funciona a extração de cores?",
|
|
24
|
+
answer: "Utilizamos o algoritmo 'Median Cut', que agrupa os píxeis da imagem de acordo com a sua proximidade no espaço de cor RGB para encontrar os tons mais representativos.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: "Posso copiar as cores para o meu editor de design?",
|
|
28
|
+
answer: "Sim, ao clicar em cada cor, o código HEX será automaticamente copiado para a sua área de transferência, pronto para ser colado no Photoshop, Figma ou CSS.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
question: "Que tipos de imagem posso analisar?",
|
|
32
|
+
answer: "Qualquer ficheiro JPG, PNG ou WebP. O processamento é local, pelo que imagens grandes serão analisadas rapidamente sem consumir dados de rede.",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const howTo: ChromaticLensLocaleContent['howTo'] = [
|
|
37
|
+
{
|
|
38
|
+
name: "Carregar a imagem",
|
|
39
|
+
text: "Carregue a fotografia da qual deseja extrair inspiração cromática.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Ajustar precisão",
|
|
43
|
+
text: "Selecione quantas cores dominantes deseja que a ferramenta identifique (de 3 a 12).",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Analisar o resultado",
|
|
47
|
+
text: "A paleta aparecerá instantaneamente com os seus códigos hexadecimais correspondentes.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Copiar e usar",
|
|
51
|
+
text: "Clique nos tons para os guardar e aplicar no seu projeto de design.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const bibliography: ChromaticLensLocaleContent['bibliography'] = [
|
|
56
|
+
{
|
|
57
|
+
name: "Median Cut Algorithm - Wikipedia",
|
|
58
|
+
url: "https://en.wikipedia.org/wiki/Median_cut",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Teoria da Cor para Designers",
|
|
62
|
+
url: "https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/",
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seo: ChromaticLensLocaleContent['seo'] = [
|
|
67
|
+
{
|
|
68
|
+
type: 'summary',
|
|
69
|
+
title: 'Extração Inteligente de Paleta de Cores',
|
|
70
|
+
items: [
|
|
71
|
+
'Algoritmo profissional Median Cut para análise de cores',
|
|
72
|
+
'Extraia 3-12 cores dominantes de qualquer imagem',
|
|
73
|
+
'Códigos HEX copiáveis diretamente para a área de transferência',
|
|
74
|
+
'Processamento 100% local - ideal para criativos'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{ type: 'title', text: 'Extração de Paleta de Cores: Ciência e Design', level: 2 },
|
|
78
|
+
{ type: 'paragraph', html: 'Já se perguntou por que uma fotografia de filme parece tão harmoniosa? Não é coincidência; é a teoria da cor em ação. O Chromatic Lens permite extrair essa harmonia diretamente do píxel, transformando-a em códigos HEX utilizáveis nos seus projetos de design.' },
|
|
79
|
+
|
|
80
|
+
{ type: 'stats', items: [
|
|
81
|
+
{ value: 'Instantânea', label: 'Análise de Cores', icon: 'mdi:lightning-bolt' },
|
|
82
|
+
{ value: '100%', label: 'Privacidade Local', icon: 'mdi:lock' },
|
|
83
|
+
{ value: 'RGB', label: 'Espaço de Cor Preciso', icon: 'mdi:palette' }
|
|
84
|
+
], columns: 3 },
|
|
85
|
+
|
|
86
|
+
{ type: 'title', text: 'O Algoritmo Median Cut Explicado', level: 3 },
|
|
87
|
+
{ type: 'paragraph', html: 'A extração inteligente de paletas não é uma simples amostragem aleatória de píxeis. Utiliza o algoritmo Median Cut, uma técnica de partição recursiva que assegura uma representação fiel:' },
|
|
88
|
+
{ type: 'list', items: [
|
|
89
|
+
'<strong>Divisão Recursiva:</strong> O \"cubo de cores\" RGB da imagem é dividido recursivamente em caixas mais pequenas.',
|
|
90
|
+
'<strong>Equilíbrio de Volume:</strong> Cada partição procura agrupar píxeis do mesmo espaço de cor com volumes semelhantes.',
|
|
91
|
+
'<strong>Média Ponderada:</strong> A cor resultante de cada caixa é a média de todos os píxeis que contém.',
|
|
92
|
+
'<strong>Representação Fiel:</strong> As cores dominantes refletem a atmosfera visual real da imagem, não uma simples amostra.'
|
|
93
|
+
], icon: 'mdi:check' },
|
|
94
|
+
|
|
95
|
+
{ type: 'card', title: 'Fluxo de Trabalho Criativo', html: 'Ideal para desenvolvedores web, designers UX/UI, artistas digitais e criativos que procuram capturar instantaneamente a essência visual de uma fotografia, filme ou referência visual para aplicar nas suas interfaces, ilustrações ou paletas de marca.' },
|
|
96
|
+
|
|
97
|
+
{ type: 'title', text: 'Casos de Uso em Design Digital', level: 3 },
|
|
98
|
+
{ type: 'comparative', items: [
|
|
99
|
+
{
|
|
100
|
+
title: 'Designers UX/UI',
|
|
101
|
+
description: 'Extraia paletas de imagens hero para criar interfaces coesas',
|
|
102
|
+
icon: 'mdi:palette',
|
|
103
|
+
points: [
|
|
104
|
+
'Cores de fundo harmoniosas',
|
|
105
|
+
'Botões e elementos secundários',
|
|
106
|
+
'Contraste calculado automaticamente'
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Desenvolvedores Web',
|
|
111
|
+
description: 'Crie folhas de estilo CSS diretamente de referências visuais',
|
|
112
|
+
icon: 'mdi:code-braces',
|
|
113
|
+
points: [
|
|
114
|
+
'Copie HEX diretamente para CSS',
|
|
115
|
+
'Variáveis de cor em SCSS/CSS',
|
|
116
|
+
'Temas coesos sem design prévio'
|
|
117
|
+
],
|
|
118
|
+
highlight: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
title: 'Artistas Digitais e Ilustradores',
|
|
122
|
+
description: 'Capture referências cromáticas de filmes, natureza ou arte',
|
|
123
|
+
icon: 'mdi:brush',
|
|
124
|
+
points: [
|
|
125
|
+
'Paletas de referência de obras-primas',
|
|
126
|
+
'Estudos de cor cinematográficos',
|
|
127
|
+
'Inspiração visual imediata'
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Especialistas em Branding',
|
|
132
|
+
description: 'Desenvolva identidades visuais baseadas em fotografias guia',
|
|
133
|
+
icon: 'mdi:tag-multiple',
|
|
134
|
+
points: [
|
|
135
|
+
'Extraia as cores da marca a partir de imagens',
|
|
136
|
+
'Crie guias cromáticos profissionais',
|
|
137
|
+
'Garanta a consistência visual'
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
], columns: 2 },
|
|
141
|
+
|
|
142
|
+
{ type: 'title', text: 'Teoria da Cor Aplicada', level: 3 },
|
|
143
|
+
{ type: 'table', headers: ['Conceito de Cor', 'Definição', 'Aplicação Prática'], rows: [
|
|
144
|
+
['Harmonia Cromática', 'Combinação de cores visualmente equilibrada', 'Identidade visual coesa na UI'],
|
|
145
|
+
['Contraste', 'Diferença de brilho entre cores', 'Legibilidade e hierarquia visual'],
|
|
146
|
+
['Saturação', 'Intensidade da cor de um tom', 'Profissionalismo (baixa) vs Energia (alta)'],
|
|
147
|
+
['Temperatura da Cor', 'Cores quentes (vermelhos) vs cores frias (azuis)', 'Psicologia emocional do design'],
|
|
148
|
+
['Paleta Monocromática', 'Variações de um único tom', 'Elegância e minimalismo']
|
|
149
|
+
] },
|
|
150
|
+
|
|
151
|
+
{ type: 'proscons', items: [
|
|
152
|
+
{
|
|
153
|
+
pro: 'Precisão matemática na extração - não é uma seleção visual aproximada',
|
|
154
|
+
con: 'Cores quase invisíveis podem ser incluídas se tiverem muitos píxeis'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Cópia instantânea para a área de transferência - integração perfeita no fluxo de trabalho',
|
|
158
|
+
con: 'Necessita de um navegador moderno compatível com a API Canvas'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Privacidade total - análise 100% local sem submissão de dados',
|
|
162
|
+
con: 'Nenhum histórico de análises anteriores guardado'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pro: 'Compatível com qualquer formato de imagem digital',
|
|
166
|
+
con: 'As cores finais dependem da compressão e qualidade da imagem'
|
|
167
|
+
}
|
|
168
|
+
], proTitle: 'Vantagens', conTitle: 'Limitações' },
|
|
169
|
+
|
|
170
|
+
{ type: 'diagnostic', variant: 'success', title: 'Representação Realista de Cores', icon: 'mdi:check-circle-outline', badge: 'Algoritmo Avançado', html: 'Ao contrário de ferramentas que simplesmente amostram píxeis aleatórios, o nosso sistema utiliza o algoritmo Median Cut que pondera a contagem total de píxeis de cada tom, garantendo que a paleta resultante reflita fielmente a atmosfera visual e a psicologia das cores da imagem original.' },
|
|
171
|
+
|
|
172
|
+
{ type: 'glossary', items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Median Cut',
|
|
175
|
+
definition: 'Algoritmo de quantização de cor que divide recursivamente o espaço RGB em caixas, garantindo uma distribuição uniforme. Historicamente utilizado na tecnologia de cores indexadas e GIF.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Espaço de Cor RGB',
|
|
179
|
+
definition: 'Modelo de cor baseado em vermelho, verde e azul. Cada cor é representada como uma combinação destes três valores (0-255). Padrão em ecrãs digitais e web.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Código HEX',
|
|
183
|
+
definition: 'Notação hexadecimal de 6 dígitos (#RRGGBB) que representa a cor na web: #FF0000 (vermelho), #00FF00 (verde), #0000FF (azul). Universal em CSS, Figma e Adobe.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Saturação de Cor',
|
|
187
|
+
definition: 'Intensidade ou pureza da cor. Alta saturation = cor viva; baixa saturation = cor acinzentada. Afeta a perceção emocional do design.'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
term: 'Harmonia Cromática',
|
|
191
|
+
definition: 'A seleção e combinação de cores para obter um resultado visualmente agradável. Pode ser monocromática, complementar, análoga ou triádica.'
|
|
192
|
+
}
|
|
193
|
+
] },
|
|
194
|
+
|
|
195
|
+
{ type: 'message', title: 'Análise Cromática Profissional', ariaLabel: 'Informação técnica sobre análise de cores', html: 'O Chromatic Lens transforma a análise visual manual em precisão algorítmica. Não se limita a extrair cores: captura a essência emocional e visual de qualquer imagem, colocando-a diretamente na sua área de transferência como códigos HEX prontos a usar. Privacidade total, sem limites no volume de análise.' },
|
|
196
|
+
|
|
197
|
+
{ type: 'title', text: 'Design a partir de Inspiração Visual', level: 3 },
|
|
198
|
+
{ type: 'paragraph', html: 'A melhor paleta de cores é aquela que captura a intenção visual da sua referência. O Chromatic Lens automatiza o que costumava ser um processo manual: observar, analisar, anotar. Agora, basta arrastar uma imagem e obter códigos HEX profissionais em segundos.' }
|
|
199
|
+
];
|
|
200
|
+
|
|
201
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
202
|
+
'@context': 'https://schema.org',
|
|
203
|
+
'@type': 'FAQPage',
|
|
204
|
+
mainEntity: faq.map((item) => ({
|
|
205
|
+
'@type': 'Question',
|
|
206
|
+
name: item.question,
|
|
207
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
208
|
+
})),
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const howToSchema: WithContext<HowTo> = {
|
|
212
|
+
'@context': 'https://schema.org',
|
|
213
|
+
'@type': 'HowTo',
|
|
214
|
+
name: title,
|
|
215
|
+
description,
|
|
216
|
+
step: howTo.map((step) => ({
|
|
217
|
+
'@type': 'HowToStep',
|
|
218
|
+
name: step.name,
|
|
219
|
+
text: step.text,
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
224
|
+
'@context': 'https://schema.org',
|
|
225
|
+
'@type': 'SoftwareApplication',
|
|
226
|
+
name: title,
|
|
227
|
+
description,
|
|
228
|
+
applicationCategory: 'UtilitiesApplication',
|
|
229
|
+
operatingSystem: 'Web',
|
|
230
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
231
|
+
inLanguage: 'pt',
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const content: ChromaticLensLocaleContent = {
|
|
235
|
+
slug,
|
|
236
|
+
title,
|
|
237
|
+
description,
|
|
238
|
+
ui,
|
|
239
|
+
seo,
|
|
240
|
+
faqTitle: "Perguntas Frequentes",
|
|
241
|
+
faq,
|
|
242
|
+
bibliographyTitle: "Referências",
|
|
243
|
+
bibliography,
|
|
244
|
+
howTo,
|
|
245
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
246
|
+
};
|