@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 = 'hromatic-linza-cvetovaya-palitra-online';
|
|
5
|
+
const title = 'Chromatic Lens: онлайн извлечение цветовой палитры';
|
|
6
|
+
const description = 'Извлекайте профессиональные цветовые палитры из любого изображения бесплатно. Определяйте доминирующие цвета на ваших фотографиях с помощью математических алгоритмов.';
|
|
7
|
+
|
|
8
|
+
const ui: ChromaticLensUI = {
|
|
9
|
+
dropTitle: "Анализ цветов",
|
|
10
|
+
dropSubtitle: "Перетащите изображение, чтобы извлечь его хроматическую ДНК.",
|
|
11
|
+
processingLabel: "Извлечение палитры...",
|
|
12
|
+
paletteTitle: "Извлеченная палитра",
|
|
13
|
+
copyLabel: "Копировать HEX",
|
|
14
|
+
copiedLabel: "Скопировано!",
|
|
15
|
+
colorCountLabel: "Количество цветов",
|
|
16
|
+
changeImage: "Изменить изображение",
|
|
17
|
+
faqTitle: "Часто задаваемые вопросы об извлечении цвета",
|
|
18
|
+
bibliographyTitle: "Ресурсы и техническая документация"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: ChromaticLensLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: "Как работает извлечение цвета?",
|
|
24
|
+
answer: "Мы используем алгоритм «Median Cut», который группирует пиксели изображения в соответствии с их близостью в цветовом пространстве RGB для поиска наиболее репрезентативных тонов.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: "Могу ли я копировать цвета в свой дизайнерский редактор?",
|
|
28
|
+
answer: "Да, при нажатии на каждый цвет HEX-код будет автоматически скопирован в буфер обмена, готовый для вставки в Photoshop, Figma или CSS.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
question: "Какие типы изображений я могу анализировать?",
|
|
32
|
+
answer: "Любой файл JPG, PNG или WebP. Обработка локальная, поэтому большие изображения будут анализироваться быстро без потребления сетевого трафика.",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const howTo: ChromaticLensLocaleContent['howTo'] = [
|
|
37
|
+
{
|
|
38
|
+
name: "Загрузите изображение",
|
|
39
|
+
text: "Загрузите фотографию, из которой вы хотите извлечь цветовое вдохновение.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Настройте точность",
|
|
43
|
+
text: "Выберите, сколько доминирующих цветов должен определить инструмент (от 3 до 12).",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Проанализируйте результат",
|
|
47
|
+
text: "Палитра появится мгновенно с соответствующими шестнадцатеричными кодами.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Копируйте и используйте",
|
|
51
|
+
text: "Нажимайте на тона, чтобы сохранить их и применить в своем дизайнерском проекте.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const bibliography: ChromaticLensLocaleContent['bibliography'] = [
|
|
56
|
+
{
|
|
57
|
+
name: "Алгоритм Median Cut — Википедия",
|
|
58
|
+
url: "https://ru.wikipedia.org/wiki/Median_cut",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Теория цвета для дизайнеров",
|
|
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: 'Интеллектуальное извлечение цветовой палитры',
|
|
70
|
+
items: [
|
|
71
|
+
'Профессиональный алгоритм Median Cut для анализа цвета',
|
|
72
|
+
'Извлечение 3–12 доминирующих цветов из любого изображения',
|
|
73
|
+
'HEX-коды копируются непосредственно в буфер обмена',
|
|
74
|
+
'100% локальная обработка — идеально для креативщиков'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{ type: 'title', text: 'Извлечение цветовой палитры: наука и дизайн', level: 2 },
|
|
78
|
+
{ type: 'paragraph', html: 'Вы когда-нибудь задумывались, почему кадр из фильма кажется таким гармоничным? Это не случайность; это теория цвета в действии. Chromatic Lens позволяет извлекать эту гармонию прямо из пикселей, превращая их в HEX-коды, пригодные для использования в ваших дизайнерских проектах.' },
|
|
79
|
+
|
|
80
|
+
{ type: 'stats', items: [
|
|
81
|
+
{ value: 'Мгновенно', label: 'Анализ цвета', icon: 'mdi:lightning-bolt' },
|
|
82
|
+
{ value: '100%', label: 'Локальная конфиденциальность', icon: 'mdi:lock' },
|
|
83
|
+
{ value: 'RGB', label: 'Точное цветовое пространство', icon: 'mdi:palette' }
|
|
84
|
+
], columns: 3 },
|
|
85
|
+
|
|
86
|
+
{ type: 'title', text: 'Объяснение алгоритма Median Cut', level: 3 },
|
|
87
|
+
{ type: 'paragraph', html: 'Интеллектуальное извлечение палитры — это не простая случайная выборка пикселей. Оно использует алгоритм Median Cut, метод рекурсивного разделения, который обеспечивает верное представление:' },
|
|
88
|
+
{ type: 'list', items: [
|
|
89
|
+
'<strong>Рекурсивное деление:</strong> «Цветовой куб» RGB изображения рекурсивно делится на более мелкие блоки.',
|
|
90
|
+
'<strong>Баланс объема:</strong> Каждый раздел стремится сгруппировать пиксели одного цветового пространства с похожими объемами.',
|
|
91
|
+
'<strong>Средневзвешенное значение:</strong> Результирующий цвет каждого блока является средним значением всех содержащихся в нем пикселей.',
|
|
92
|
+
'<strong>Точное представление:</strong> Доминирующие цвета отражают реальную визуальную атмосферу изображения, а не просто случайную пробу.'
|
|
93
|
+
], icon: 'mdi:check' },
|
|
94
|
+
|
|
95
|
+
{ type: 'card', title: 'Творческий рабочий процесс', html: 'Идеально подходит для веб-разработчиков, UX/UI-дизайнеров, цифровых художников и креативщиков, стремящихся мгновенно уловить визуальную суть фотографии, фильма или визуального референса для применения в своих интерфейсах, иллюстрациях или брендовых палитрах.' },
|
|
96
|
+
|
|
97
|
+
{ type: 'title', text: 'Варианты использования в цифровом дизайне', level: 3 },
|
|
98
|
+
{ type: 'comparative', items: [
|
|
99
|
+
{
|
|
100
|
+
title: 'UX/UI дизайнеры',
|
|
101
|
+
description: 'Извлекайте палитры из главных изображений для создания целостных интерфейсов',
|
|
102
|
+
icon: 'mdi:palette',
|
|
103
|
+
points: [
|
|
104
|
+
'Гармоничные фоновые цвета',
|
|
105
|
+
'Кнопки и второстепенные элементы',
|
|
106
|
+
'Автоматически рассчитываемый контраст'
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Веб разработчики',
|
|
111
|
+
description: 'Создавайте таблицы стилей CSS непосредственно из визуальных референсов',
|
|
112
|
+
icon: 'mdi:code-braces',
|
|
113
|
+
points: [
|
|
114
|
+
'Копируйте HEX прямо в CSS',
|
|
115
|
+
'Цветовые переменные в SCSS/CSS',
|
|
116
|
+
'Целостные темы без предварительного дизайна'
|
|
117
|
+
],
|
|
118
|
+
highlight: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
title: 'Цифровые художники и иллюстраторы',
|
|
122
|
+
description: 'Захватывайте хроматические референсы из фильмов, природы или искусства',
|
|
123
|
+
icon: 'mdi:brush',
|
|
124
|
+
points: [
|
|
125
|
+
'Справочные палитры из шедевров',
|
|
126
|
+
'Кинематографические цветовые исследования',
|
|
127
|
+
'Мгновенное визуальное вдохновение'
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Специалисты по брендингу',
|
|
132
|
+
description: 'Разрабатывайте визуальную идентичность на основе направляющих фотографий',
|
|
133
|
+
icon: 'mdi:tag-multiple',
|
|
134
|
+
points: [
|
|
135
|
+
'Извлекайте цвета бренда из изображений',
|
|
136
|
+
'Создавайте профессиональные хроматические руководства',
|
|
137
|
+
'Обеспечивайте визуальную согласованность'
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
], columns: 2 },
|
|
141
|
+
|
|
142
|
+
{ type: 'title', text: 'Прикладная теория цвета', level: 3 },
|
|
143
|
+
{ type: 'table', headers: ['Концепция цвета', 'Определение', 'Практическое применение'], rows: [
|
|
144
|
+
['Цветовая гармония', 'Визуально сбалансированное сочетание цветов', 'Целостная визуальная идентичность в UI'],
|
|
145
|
+
['Контраст', 'Разница в яркости между цветами', 'Читаемость и визуальная иерархия'],
|
|
146
|
+
['Насыщенность', 'Интенсивность цвета тона', 'Профессионализм (низкая) vs Энергия (высокая)'],
|
|
147
|
+
['Цветовая температура', 'Теплые цвета (красные) vs холодные (синие)', 'Эмоциональная психология дизайна'],
|
|
148
|
+
['Монохромная палитра', 'Вариации одного тона', 'Элегантность и минимализм']
|
|
149
|
+
] },
|
|
150
|
+
|
|
151
|
+
{ type: 'proscons', items: [
|
|
152
|
+
{
|
|
153
|
+
pro: 'Математическая точность при извлечении — не приблизительный визуальный выбор',
|
|
154
|
+
con: 'Могут быть включены едва видимые цвета, если в них много пикселей'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Мгновенное копирование в буфер обмена — идеальная интеграция с рабочим процессом',
|
|
158
|
+
con: 'Требуется современный браузер, совместимый с Canvas API'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Полная конфиденциальность — 100% локальный анализ без отправки данных',
|
|
162
|
+
con: 'История предыдущих анализов не сохраняется'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pro: 'Совместимость с любым форматом цифровых изображений',
|
|
166
|
+
con: 'Конечные цвета зависят от сжатия и качества изображения'
|
|
167
|
+
}
|
|
168
|
+
], proTitle: 'Преимущества', conTitle: 'Ограничения' },
|
|
169
|
+
|
|
170
|
+
{ type: 'diagnostic', variant: 'success', title: 'Реалистичное представление цвета', icon: 'mdi:check-circle-outline', badge: 'Продвинутый алгоритм', html: 'В отличие от инструментов, которые просто делают выборку случайных пикселей, наша система использует алгоритм Median Cut, который взвешивает общее количество пикселей каждого тона, гарантируя, что полученная палитра точно отражает визуальную атмосферу и психологию цвета исходного изображения.' },
|
|
171
|
+
|
|
172
|
+
{ type: 'glossary', items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Median Cut',
|
|
175
|
+
definition: 'Алгоритм квантования цвета, который рекурсивно делит пространство RGB на блоки, обеспечивая равномерное распределение. Исторически использовался в технологиях GIF и индексированных цветов.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Цветовое пространство RGB',
|
|
179
|
+
definition: 'Цветовая модель, основанная на красном, зеленом и синем цветах. Каждый цвет представлен как комбинация этих трех значений (0–255). Стандарт для цифровых экранов и веб-интерфейсов.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'HEX-код',
|
|
183
|
+
definition: '6-значная шестнадцатеричная запись (#RRGGBB), представляющая цвет в вебе: #FF0000 (красный), #00FF00 (зеленый), #0000FF (синий). Универсальный стандарт в CSS, Figma и Adobe.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Насыщенность цвета',
|
|
187
|
+
definition: 'Интенсивность или чистота цвета. Высокая насыщенность = яркий цвет; низкая насыщенность = сероватый цвет. Влияет на эмоциональное восприятие дизайна.'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
term: 'Цветовая гармония',
|
|
191
|
+
definition: 'Выбор и сочетание цветов, приводящие к визуально приятному результату. Может быть монохромным, комплементарным, аналогичным или триадным.'
|
|
192
|
+
}
|
|
193
|
+
] },
|
|
194
|
+
|
|
195
|
+
{ type: 'message', title: 'Профессиональный хроматический анализ', ariaLabel: 'Техническая информация об анализе цвета', html: 'Chromatic Lens превращает ручной визуальный анализ в алгоритмическую точность. Он не просто извлекает цвета: он улавливает эмоциональную и визуальную суть любого изображения, помещая её прямо в ваш буфер обмена в виде готовых к использованию HEX-кодов. Полная конфиденциальность, без ограничений по объему анализа.' },
|
|
196
|
+
|
|
197
|
+
{ type: 'title', text: 'Дизайн на основе визуального вдохновения', level: 3 },
|
|
198
|
+
{ type: 'paragraph', html: 'Лучшая цветовая палитра — та, которая улавливает визуальный замысел вашего референса. Chromatic Lens автоматизирует то, что раньше было ручным процессом: наблюдение, анализ, запись. Теперь просто перетащите изображение и получите профессиональные HEX-коды за считанные секунды.' }
|
|
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: 'ru',
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const content: ChromaticLensLocaleContent = {
|
|
235
|
+
slug,
|
|
236
|
+
title,
|
|
237
|
+
description,
|
|
238
|
+
ui,
|
|
239
|
+
seo,
|
|
240
|
+
faqTitle: "Часто задаваемые вопросы",
|
|
241
|
+
faq,
|
|
242
|
+
bibliographyTitle: "Ссылки",
|
|
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-extrahera-fargpalett-online';
|
|
5
|
+
const title = 'Chromatic Lens: Extrahera färgpalett online';
|
|
6
|
+
const description = 'Extrahera professionella färgpaletter från valfri bild helt gratis. Identifiera dominanta färger i dina foton med hjälp av matematiska algoritmer.';
|
|
7
|
+
|
|
8
|
+
const ui: ChromaticLensUI = {
|
|
9
|
+
dropTitle: "Analysera färger",
|
|
10
|
+
dropSubtitle: "Dra en bild hit för att extrahera dess kromatiska DNA.",
|
|
11
|
+
processingLabel: "Extraherar palett...",
|
|
12
|
+
paletteTitle: "Extraherad palett",
|
|
13
|
+
copyLabel: "Kopiera HEX",
|
|
14
|
+
copiedLabel: "Kopierad!",
|
|
15
|
+
colorCountLabel: "Antal färger",
|
|
16
|
+
changeImage: "Byt bild",
|
|
17
|
+
faqTitle: "Vanliga frågor om färgextraktion",
|
|
18
|
+
bibliographyTitle: "Resurser och teknisk dokumentation"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: ChromaticLensLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: "Hur fungerar färgextraktion?",
|
|
24
|
+
answer: "Vi använder 'Median Cut'-algoritmen, som grupperar bildpixlar baserat på deras närhet i RGB-färgrymden för att hitta de mest representativa tonerna.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: "Kan jag kopiera färger till mitt designprogram?",
|
|
28
|
+
answer: "Ja, genom att klicka på varje färg kopieras HEX-koden automatiskt till ditt urklipp, redo att klistras in i Photoshop, Figma eller CSS.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
question: "Vilka typer av bilder kan jag analysera?",
|
|
32
|
+
answer: "Alla JPG-, PNG- eller WebP-filer. Bearbetningen sker lokalt, så stora bilder analyseras snabbt utan att förbruka nätverksdata.",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const howTo: ChromaticLensLocaleContent['howTo'] = [
|
|
37
|
+
{
|
|
38
|
+
name: "Ladda upp bilden",
|
|
39
|
+
text: "Ladda upp fotografiet som du vill extrahera kromatisk inspiration ifrån.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Justera precision",
|
|
43
|
+
text: "Välj hur många dominanta färger du vill att verktyget ska identifiera (från 3 till 12).",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Analysera resultatet",
|
|
47
|
+
text: "Paletten visas omedelbart tillsammans med motsvarande hexadecimala koder.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Kopiera och använd",
|
|
51
|
+
text: "Klicka på tonerna för att spara dem och använda dem i ditt designprojekt.",
|
|
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: "Färglära för 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: 'Intelligent extraktion av färgpaletter',
|
|
70
|
+
items: [
|
|
71
|
+
'Professionell Median Cut-algoritm för färganalys',
|
|
72
|
+
'Extrahera 3-12 dominanta färger från valfri bild',
|
|
73
|
+
'HEX-koder som kan kopieras direkt till urklipp',
|
|
74
|
+
'100% lokal bearbetning - perfekt för kreatörer'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{ type: 'title', text: 'Färgpalettsextraktion: Vetenskap och design', level: 2 },
|
|
78
|
+
{ type: 'paragraph', html: 'Har du någonsin undrat varför ett filmfoto känns så harmoniskt? Det är ingen slump; det är färglära i praktiken. Chromatic Lens låter dig extrahera den harmonin direkt från pixeln och omvandla den till HEX-koder som kan användas i dina designprojekt.' },
|
|
79
|
+
|
|
80
|
+
{ type: 'stats', items: [
|
|
81
|
+
{ value: 'Omedelbar', label: 'Färganalys', icon: 'mdi:lightning-bolt' },
|
|
82
|
+
{ value: '100%', label: 'Lokal integritet', icon: 'mdi:lock' },
|
|
83
|
+
{ value: 'RGB', label: 'Exakt färgrymd', icon: 'mdi:palette' }
|
|
84
|
+
], columns: 3 },
|
|
85
|
+
|
|
86
|
+
{ type: 'title', text: 'Median Cut algoritmen förklarad', level: 3 },
|
|
87
|
+
{ type: 'paragraph', html: 'Intelligent palettextraktion är inte en enkel slumpmässig sampling av pixlar. Den använder Median Cut-algoritmen, en rekursiv partitioneringsteknik som säkerställer en trogen representation:' },
|
|
88
|
+
{ type: 'list', items: [
|
|
89
|
+
'<strong>Rekursiv uppdelning:</strong> Bildens RGB-\"färgkub\" delas rekursivt upp i mindre boxar.',
|
|
90
|
+
'<strong>Volymbolans:</strong> Varje partition strävar efter att gruppera pixlar från samma färgrymd med liknande volymer.',
|
|
91
|
+
'<strong>Viktat medelvärde:</strong> Den resulterande färgen i varje box är genomsnittet av alla pixlar den innehåller.',
|
|
92
|
+
'<strong>Trogen representation:</strong> De dominanta färgerna återspeglar bildens verkliga visuella atmosfär, inte bara ett enkelt stickprov.'
|
|
93
|
+
], icon: 'mdi:check' },
|
|
94
|
+
|
|
95
|
+
{ type: 'card', title: 'Kreativt arbetsflöde', html: 'Idealisk för webbutvecklare, UX/UI-designers, digitala konstnärer och kreatörer som vill fånga den visuella essensen i ett fotografi, en film eller en visuell referens för att använda i sina gränssnitt, illustrationer eller varumärkespaletter.' },
|
|
96
|
+
|
|
97
|
+
{ type: 'title', text: 'Användningsområden inom digital design', level: 3 },
|
|
98
|
+
{ type: 'comparative', items: [
|
|
99
|
+
{
|
|
100
|
+
title: 'UX/UI designers',
|
|
101
|
+
description: 'Extrahera paletter från hero-bilder för att skapa enhetliga gränssnitt',
|
|
102
|
+
icon: 'mdi:palette',
|
|
103
|
+
points: [
|
|
104
|
+
'Harmoniska bakgrundsfärger',
|
|
105
|
+
'Knappar och sekundära element',
|
|
106
|
+
'Automatiskt beräknad kontrast'
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Webbutvecklare',
|
|
111
|
+
description: 'Skapa CSS-stylesheets direkt från visuella referenser',
|
|
112
|
+
icon: 'mdi:code-braces',
|
|
113
|
+
points: [
|
|
114
|
+
'Kopiera HEX direkt till CSS',
|
|
115
|
+
'Färgvariabler i SCSS/CSS',
|
|
116
|
+
'Enhetliga teman utan föregående design'
|
|
117
|
+
],
|
|
118
|
+
highlight: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
title: 'Digitala konstnärer och illustratörer',
|
|
122
|
+
description: 'Fånga kromatiska referenser från film, natur eller konst',
|
|
123
|
+
icon: 'mdi:brush',
|
|
124
|
+
points: [
|
|
125
|
+
'Referenspaletter från mästerverk',
|
|
126
|
+
'Cinematiska färgstudier',
|
|
127
|
+
'Omedelbar visuell inspiration'
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Varumärkesspecialister',
|
|
132
|
+
description: 'Utveckla visuella identiteter baserat på guidefotografier',
|
|
133
|
+
icon: 'mdi:tag-multiple',
|
|
134
|
+
points: [
|
|
135
|
+
'Extrahera varumärkesfärger från bilder',
|
|
136
|
+
'Skapa professionella kromatiska guider',
|
|
137
|
+
'Säkerställ visuell konsistens'
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
], columns: 2 },
|
|
141
|
+
|
|
142
|
+
{ type: 'title', text: 'Tillämpad färglära', level: 3 },
|
|
143
|
+
{ type: 'table', headers: ['Färgkoncept', 'Definition', 'Praktisk tillämpning'], rows: [
|
|
144
|
+
['Kromatisk harmoni', 'Färgkombination som är visuellt balanserad', 'Enhetlig visuell identitet i UI'],
|
|
145
|
+
['Kontrast', 'Skillnad i ljusstyrka mellan färger', 'Läsbarhet och visuell hierarki'],
|
|
146
|
+
['Mättnad', 'Färgintensitet hos en ton', 'Professionalism (låg) mot energi (hög)'],
|
|
147
|
+
['Färgtemperatur', 'Varma färger (röda) mot kalla färger (blå)', 'Känslomässig psykologi i design'],
|
|
148
|
+
['Monokromatisk palett', 'Variationer av en enda ton', 'Elegans och minimalism']
|
|
149
|
+
] },
|
|
150
|
+
|
|
151
|
+
{ type: 'proscons', items: [
|
|
152
|
+
{
|
|
153
|
+
pro: 'Matematisk precision i extraktionen - inte ett ungefärligt visuellt val',
|
|
154
|
+
con: 'Knappt synliga färger kan inkluderas om de består av många pixlar'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Omedelbar kopiering till urklipp - perfekt integration med arbetsflödet',
|
|
158
|
+
con: 'Kräver en modern webbläsare som är kompatibel med Canvas API'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Total integritet - 100% lokal analys utan att data skickas iväg',
|
|
162
|
+
con: 'Ingen historik över tidigare analyser sparas'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pro: 'Kompatibel med alla digitala bildformat',
|
|
166
|
+
con: 'Slutgiltiga färger beror på bildkompression och kvalitet'
|
|
167
|
+
}
|
|
168
|
+
], proTitle: 'Fördelar', conTitle: 'Begränsningar' },
|
|
169
|
+
|
|
170
|
+
{ type: 'diagnostic', variant: 'success', title: 'Realistisk färgåtergivning', icon: 'mdi:check-circle-outline', badge: 'Avancerad algoritm', html: 'Till skillnad från verktyg som bara samplar slumpmässiga pixlar använder vårt system Median Cut-algoritmen som väger in hela pixelantalet för varje ton, vilket säkerställer att den resulterande paletten troget återspeglar den visuella atmosfären och färgpsykologin i originalbilden.' },
|
|
171
|
+
|
|
172
|
+
{ type: 'glossary', items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Median Cut',
|
|
175
|
+
definition: 'Kvantiseringsalgoritm för färger som rekursivt delar upp RGB-rymden i boxar, vilket säkerställer en enhetlig fördelning. Har historiskt använts i GIF och indexerad färgteknik.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'RGB-färgrymd',
|
|
179
|
+
definition: 'Färgmodell baserad på rött, grönt och blått. Varje färg representeras som en kombination av dessa tre värden (0-255). Standard på digitala skärmar och webben.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'HEX-kod',
|
|
183
|
+
definition: '6-siffrig hexadecimal notation (#RRGGBB) som representerar färg på webben: #FF0000 (röd), #00FF00 (grön), #0000FF (blå). Universell i CSS, Figma och Adobe.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Färgmättnad',
|
|
187
|
+
definition: 'Intensitet eller renhet hos en färg. Hög mättnad = livfull färg; låg mättnad = gråaktig färg. Påverkar den känslomässiga uppfattningen av designen.'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
term: 'Kromatisk harmoni',
|
|
191
|
+
definition: 'Urval och kombination av färger som resulterar i ett visuellt tilltalande resultat. Det kan vara monokromatiskt, komplementärt, analogt eller triadiskt.'
|
|
192
|
+
}
|
|
193
|
+
] },
|
|
194
|
+
|
|
195
|
+
{ type: 'message', title: 'Professionell kromatisk analys', ariaLabel: 'Teknisk information om färganalys', html: 'Chromatic Lens förvandlar manuell visuell analys till algoritmisk precision. Verktyget extraherar inte bara färger: det fångar den känslomässiga och visuella essensen i alla bilder och lägger den direkt i ditt urklipp som färdiga HEX-koder. Total integritet, inga begränsningar i produktivitet.' },
|
|
196
|
+
|
|
197
|
+
{ type: 'title', text: 'Design utifrån visuell inspiration', level: 3 },
|
|
198
|
+
{ type: 'paragraph', html: 'Den bästa färgpaletten är den som fångar den visuella intentionen i din referens. Chromatic Lens automatiserar det som tidigare var en manuell process: observera, analysera, anteckna. Nu behöver du bara dra en bild och få professionella HEX-koder på några sekunder.' }
|
|
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: 'sv',
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const content: ChromaticLensLocaleContent = {
|
|
235
|
+
slug,
|
|
236
|
+
title,
|
|
237
|
+
description,
|
|
238
|
+
ui,
|
|
239
|
+
seo,
|
|
240
|
+
faqTitle: "Vanliga frågor",
|
|
241
|
+
faq,
|
|
242
|
+
bibliographyTitle: "Referenser",
|
|
243
|
+
bibliography,
|
|
244
|
+
howTo,
|
|
245
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
246
|
+
};
|