@jjlmoya/utils-audiovisual 1.6.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.
Files changed (175) hide show
  1. package/package.json +59 -58
  2. package/src/category/i18n/de.ts +198 -0
  3. package/src/category/i18n/fr.ts +1 -1
  4. package/src/category/i18n/id.ts +198 -0
  5. package/src/category/i18n/it.ts +198 -0
  6. package/src/category/i18n/ja.ts +198 -0
  7. package/src/category/i18n/ko.ts +198 -0
  8. package/src/category/i18n/nl.ts +198 -0
  9. package/src/category/i18n/pl.ts +198 -0
  10. package/src/category/i18n/pt.ts +198 -0
  11. package/src/category/i18n/ru.ts +198 -0
  12. package/src/category/i18n/sv.ts +198 -0
  13. package/src/category/i18n/tr.ts +198 -0
  14. package/src/category/i18n/zh.ts +198 -0
  15. package/src/category/index.ts +31 -3
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/schemas_fulfillment.test.ts +23 -0
  18. package/src/tests/title_quality.test.ts +55 -0
  19. package/src/tool/chromaticLens/i18n/de.ts +246 -0
  20. package/src/tool/chromaticLens/i18n/en.ts +1 -1
  21. package/src/tool/chromaticLens/i18n/es.ts +1 -1
  22. package/src/tool/chromaticLens/i18n/fr.ts +1 -1
  23. package/src/tool/chromaticLens/i18n/id.ts +246 -0
  24. package/src/tool/chromaticLens/i18n/it.ts +246 -0
  25. package/src/tool/chromaticLens/i18n/ja.ts +246 -0
  26. package/src/tool/chromaticLens/i18n/ko.ts +246 -0
  27. package/src/tool/chromaticLens/i18n/nl.ts +246 -0
  28. package/src/tool/chromaticLens/i18n/pl.ts +246 -0
  29. package/src/tool/chromaticLens/i18n/pt.ts +246 -0
  30. package/src/tool/chromaticLens/i18n/ru.ts +246 -0
  31. package/src/tool/chromaticLens/i18n/sv.ts +246 -0
  32. package/src/tool/chromaticLens/i18n/tr.ts +246 -0
  33. package/src/tool/chromaticLens/i18n/zh.ts +246 -0
  34. package/src/tool/chromaticLens/index.ts +15 -7
  35. package/src/tool/collageMaker/i18n/de.ts +233 -0
  36. package/src/tool/collageMaker/i18n/en.ts +1 -1
  37. package/src/tool/collageMaker/i18n/es.ts +1 -1
  38. package/src/tool/collageMaker/i18n/fr.ts +1 -1
  39. package/src/tool/collageMaker/i18n/id.ts +233 -0
  40. package/src/tool/collageMaker/i18n/it.ts +233 -0
  41. package/src/tool/collageMaker/i18n/ja.ts +233 -0
  42. package/src/tool/collageMaker/i18n/ko.ts +233 -0
  43. package/src/tool/collageMaker/i18n/nl.ts +233 -0
  44. package/src/tool/collageMaker/i18n/pl.ts +233 -0
  45. package/src/tool/collageMaker/i18n/pt.ts +233 -0
  46. package/src/tool/collageMaker/i18n/ru.ts +233 -0
  47. package/src/tool/collageMaker/i18n/sv.ts +233 -0
  48. package/src/tool/collageMaker/i18n/tr.ts +233 -0
  49. package/src/tool/collageMaker/i18n/zh.ts +233 -0
  50. package/src/tool/collageMaker/index.ts +15 -6
  51. package/src/tool/exifCleaner/i18n/de.ts +277 -0
  52. package/src/tool/exifCleaner/i18n/en.ts +2 -2
  53. package/src/tool/exifCleaner/i18n/es.ts +2 -2
  54. package/src/tool/exifCleaner/i18n/fr.ts +4 -4
  55. package/src/tool/exifCleaner/i18n/id.ts +277 -0
  56. package/src/tool/exifCleaner/i18n/it.ts +277 -0
  57. package/src/tool/exifCleaner/i18n/ja.ts +277 -0
  58. package/src/tool/exifCleaner/i18n/ko.ts +277 -0
  59. package/src/tool/exifCleaner/i18n/nl.ts +277 -0
  60. package/src/tool/exifCleaner/i18n/pl.ts +277 -0
  61. package/src/tool/exifCleaner/i18n/pt.ts +277 -0
  62. package/src/tool/exifCleaner/i18n/ru.ts +277 -0
  63. package/src/tool/exifCleaner/i18n/sv.ts +277 -0
  64. package/src/tool/exifCleaner/i18n/tr.ts +277 -0
  65. package/src/tool/exifCleaner/i18n/zh.ts +277 -0
  66. package/src/tool/exifCleaner/index.ts +16 -8
  67. package/src/tool/imageCompressor/i18n/de.ts +242 -0
  68. package/src/tool/imageCompressor/i18n/en.ts +2 -2
  69. package/src/tool/imageCompressor/i18n/es.ts +2 -2
  70. package/src/tool/imageCompressor/i18n/id.ts +242 -0
  71. package/src/tool/imageCompressor/i18n/it.ts +242 -0
  72. package/src/tool/imageCompressor/i18n/ja.ts +242 -0
  73. package/src/tool/imageCompressor/i18n/ko.ts +242 -0
  74. package/src/tool/imageCompressor/i18n/nl.ts +242 -0
  75. package/src/tool/imageCompressor/i18n/pl.ts +242 -0
  76. package/src/tool/imageCompressor/i18n/pt.ts +242 -0
  77. package/src/tool/imageCompressor/i18n/ru.ts +242 -0
  78. package/src/tool/imageCompressor/i18n/sv.ts +242 -0
  79. package/src/tool/imageCompressor/i18n/tr.ts +242 -0
  80. package/src/tool/imageCompressor/i18n/zh.ts +244 -0
  81. package/src/tool/imageCompressor/index.ts +15 -7
  82. package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
  83. package/src/tool/printQualityCalculator/i18n/en.ts +2 -2
  84. package/src/tool/printQualityCalculator/i18n/es.ts +3 -3
  85. package/src/tool/printQualityCalculator/i18n/fr.ts +3 -3
  86. package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
  87. package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
  88. package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
  89. package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
  90. package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
  91. package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
  92. package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
  93. package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
  94. package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
  95. package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
  96. package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
  97. package/src/tool/printQualityCalculator/index.ts +15 -7
  98. package/src/tool/privacyBlur/i18n/de.ts +238 -0
  99. package/src/tool/privacyBlur/i18n/en.ts +1 -1
  100. package/src/tool/privacyBlur/i18n/es.ts +1 -1
  101. package/src/tool/privacyBlur/i18n/fr.ts +1 -1
  102. package/src/tool/privacyBlur/i18n/id.ts +238 -0
  103. package/src/tool/privacyBlur/i18n/it.ts +238 -0
  104. package/src/tool/privacyBlur/i18n/ja.ts +238 -0
  105. package/src/tool/privacyBlur/i18n/ko.ts +238 -0
  106. package/src/tool/privacyBlur/i18n/nl.ts +238 -0
  107. package/src/tool/privacyBlur/i18n/pl.ts +238 -0
  108. package/src/tool/privacyBlur/i18n/pt.ts +238 -0
  109. package/src/tool/privacyBlur/i18n/ru.ts +238 -0
  110. package/src/tool/privacyBlur/i18n/sv.ts +238 -0
  111. package/src/tool/privacyBlur/i18n/tr.ts +238 -0
  112. package/src/tool/privacyBlur/i18n/zh.ts +238 -0
  113. package/src/tool/privacyBlur/index.ts +15 -7
  114. package/src/tool/subtitleSync/i18n/de.ts +241 -0
  115. package/src/tool/subtitleSync/i18n/en.ts +1 -1
  116. package/src/tool/subtitleSync/i18n/es.ts +1 -1
  117. package/src/tool/subtitleSync/i18n/fr.ts +8 -8
  118. package/src/tool/subtitleSync/i18n/id.ts +241 -0
  119. package/src/tool/subtitleSync/i18n/it.ts +241 -0
  120. package/src/tool/subtitleSync/i18n/ja.ts +241 -0
  121. package/src/tool/subtitleSync/i18n/ko.ts +241 -0
  122. package/src/tool/subtitleSync/i18n/nl.ts +241 -0
  123. package/src/tool/subtitleSync/i18n/pl.ts +241 -0
  124. package/src/tool/subtitleSync/i18n/pt.ts +241 -0
  125. package/src/tool/subtitleSync/i18n/ru.ts +241 -0
  126. package/src/tool/subtitleSync/i18n/sv.ts +241 -0
  127. package/src/tool/subtitleSync/i18n/tr.ts +241 -0
  128. package/src/tool/subtitleSync/i18n/zh.ts +241 -0
  129. package/src/tool/subtitleSync/index.ts +15 -7
  130. package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
  131. package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
  132. package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
  133. package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
  134. package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
  135. package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
  136. package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
  137. package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
  138. package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
  139. package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
  140. package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
  141. package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
  142. package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
  143. package/src/tool/timelapseCalculator/index.ts +16 -8
  144. package/src/tool/tvDistance/i18n/de.ts +223 -0
  145. package/src/tool/tvDistance/i18n/en.ts +1 -1
  146. package/src/tool/tvDistance/i18n/es.ts +1 -1
  147. package/src/tool/tvDistance/i18n/fr.ts +1 -1
  148. package/src/tool/tvDistance/i18n/id.ts +223 -0
  149. package/src/tool/tvDistance/i18n/it.ts +223 -0
  150. package/src/tool/tvDistance/i18n/ja.ts +223 -0
  151. package/src/tool/tvDistance/i18n/ko.ts +223 -0
  152. package/src/tool/tvDistance/i18n/nl.ts +223 -0
  153. package/src/tool/tvDistance/i18n/pl.ts +223 -0
  154. package/src/tool/tvDistance/i18n/pt.ts +223 -0
  155. package/src/tool/tvDistance/i18n/ru.ts +223 -0
  156. package/src/tool/tvDistance/i18n/sv.ts +223 -0
  157. package/src/tool/tvDistance/i18n/tr.ts +223 -0
  158. package/src/tool/tvDistance/i18n/zh.ts +223 -0
  159. package/src/tool/tvDistance/index.ts +15 -7
  160. package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
  161. package/src/tool/videoFrameExtractor/i18n/en.ts +1 -1
  162. package/src/tool/videoFrameExtractor/i18n/es.ts +1 -1
  163. package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -1
  164. package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
  165. package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
  166. package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
  167. package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
  168. package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
  169. package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
  170. package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
  171. package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
  172. package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
  173. package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
  174. package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
  175. 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-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
+ };
@@ -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-online-renk-paleti-cikarma';
5
+ const title = 'Chromatic Lens: Online Renk Paleti Çıkarma';
6
+ const description = 'Herhangi bir görüntüden profesyonel renk paletlerini ücretsiz olarak çıkarın. Fotoğraflarınızdaki baskın renkleri matematiksel algoritmalar kullanarak belirleyin.';
7
+
8
+ const ui: ChromaticLensUI = {
9
+ dropTitle: "Renkleri Analiz Et",
10
+ dropSubtitle: "Kromatik DNA'sını çıkarmak için bir görüntüyü sürükleyin.",
11
+ processingLabel: "Palet çıkarılıyor...",
12
+ paletteTitle: "Çıkarılan Palet",
13
+ copyLabel: "HEX Kopyala",
14
+ copiedLabel: "Kopyalandı!",
15
+ colorCountLabel: "Renk sayısı",
16
+ changeImage: "Görüntüyü değiştir",
17
+ faqTitle: "Renk çıkarma hakkında sıkça sorulan sorular",
18
+ bibliographyTitle: "Kaynaklar ve teknik belgeler"
19
+ };
20
+
21
+ const faq: ChromaticLensLocaleContent['faq'] = [
22
+ {
23
+ question: "Renk çıkarma nasıl çalışır?",
24
+ answer: "En temsilci tonları bulmak için görüntü piksellerini RGB renk alanındaki yakınlıklarına göre gruplandıran 'Median Cut' algoritmasını kullanıyoruz.",
25
+ },
26
+ {
27
+ question: "Renkleri tasarım editörüme kopyalayabilir miyim?",
28
+ answer: "Evet, her renge tıkladığınızda HEX kodu otomatik olarak panonuza kopyalanır; Photoshop, Figma veya CSS'e yapıştırmaya hazırdır.",
29
+ },
30
+ {
31
+ question: "Hangi tür görüntüleri analiz edebilirim?",
32
+ answer: "Herhangi bir JPG, PNG veya WebP dosyası. İşleme yereldir, bu nedenle büyük görüntüler ağ verisi tüketmeden hızlı bir şekilde analiz edilir.",
33
+ },
34
+ ];
35
+
36
+ const howTo: ChromaticLensLocaleContent['howTo'] = [
37
+ {
38
+ name: "Görüntüyü yükle",
39
+ text: "Kromatik ilham almak istediğiniz fotoğrafı yükleyin.",
40
+ },
41
+ {
42
+ name: "Hassasiyeti ayarla",
43
+ text: "Aracın kaç tane baskın renk belirlemesini istediğinizi seçin (3 ile 12 arası).",
44
+ },
45
+ {
46
+ name: "Sonucu analiz et",
47
+ text: "Palet, ilgili onaltılık (HEX) kodlarıyla birlikte anında görünecektir.",
48
+ },
49
+ {
50
+ name: "Kopyala ve kullan",
51
+ text: "Tonları kaydetmek ve tasarım projenize uygulamak için üzerlerine tıklayın.",
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: "Tasarımcılar İçin Renk Teorisi",
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: 'Akıllı Renk Paleti Çıkarma',
70
+ items: [
71
+ 'Renk analizi için profesyonel Median Cut algoritması',
72
+ 'Herhangi bir görüntüden 3-12 baskın rengi çıkarın',
73
+ 'Doğrudan panoya kopyalanabilir HEX kodları',
74
+ '%100 yerel işleme - yaratıcılar için ideal'
75
+ ]
76
+ },
77
+ { type: 'title', text: 'Renk Paleti Çıkarma: Bilim ve Tasarım', level: 2 },
78
+ { type: 'paragraph', html: 'Bir film karesinin neden bu kadar uyumlu göründüğünü hiç merak ettiniz mi? Bu bir tesadüf değil; iş başındaki renk teorisidir. Chromatic Lens, bu uyumu doğrudan pikselden çıkarmanıza ve tasarım projelerinizde kullanılabilir HEX kodlarına dönüştürmenize olanak tanır.' },
79
+
80
+ { type: 'stats', items: [
81
+ { value: 'Anında', label: 'Renk Analizi', icon: 'mdi:lightning-bolt' },
82
+ { value: '%100', label: 'Yerel Gizlilik', icon: 'mdi:lock' },
83
+ { value: 'RGB', label: 'Hassas Renk Alanı', icon: 'mdi:palette' }
84
+ ], columns: 3 },
85
+
86
+ { type: 'title', text: 'Median Cut Algoritması Açıklaması', level: 3 },
87
+ { type: 'paragraph', html: 'Akıllı palet çıkarma, piksellerin basit bir rastgele örneklemesi değildir. Sadık bir temsil sağlayan özyinelemeli bir bölümleme tekniği olan Median Cut algoritmasını kullanır:' },
88
+ { type: 'list', items: [
89
+ '<strong>Özyinelemeli Bölme:</strong> Görüntünün RGB \"renk küpü\" özyinelemeli olarak daha küçük kutulara bölünür.',
90
+ '<strong>Hacim Dengesi:</strong> Her bölüm, benzer hacimlere sahip aynı renk alanındaki pikselleri gruplandırmaya çalışır.',
91
+ '<strong>Ağırlıklı Ortalama:</strong> Her kutunun ortaya çıkan rengi, içerdiği tüm piksellerin ortalamasıdır.',
92
+ '<strong>Sadık Temsil:</strong> Baskın renkler, basit bir örneklemi değil, görüntünün gerçek görsel atmosferini yansıtır.'
93
+ ], icon: 'mdi:check' },
94
+
95
+ { type: 'card', title: 'Yaratıcı İş Akışı', html: 'Arayüzlerine, illüstrasyonlarına veya marka paletlerine uygulamak için bir fotoğrafın, filmin veya görsel referansın görsel özünü anında yakalamak isteyen web geliştiricileri, UX/UI tasarımcıları, dijital sanatçılar ve yaratıcılar için idealdir.' },
96
+
97
+ { type: 'title', text: 'Dijital Tasarımda Kullanım Durumları', level: 3 },
98
+ { type: 'comparative', items: [
99
+ {
100
+ title: 'UX/UI Tasarımcıları',
101
+ description: 'Uyumlu arayüzler oluşturmak için hero görsellerinden paletler çıkarın',
102
+ icon: 'mdi:palette',
103
+ points: [
104
+ 'Uyumlu arka plan renkleri',
105
+ 'Düğmeler ve ikincil öğeler',
106
+ 'Otomatik olarak hesaplanan kontrast'
107
+ ]
108
+ },
109
+ {
110
+ title: 'Web Geliştiricileri',
111
+ description: 'Doğrudan görsel referanslardan CSS stil sayfaları oluşturun',
112
+ icon: 'mdi:code-braces',
113
+ points: [
114
+ 'HEX kodlarını doğrudan CSS\'e kopyalayın',
115
+ 'SCSS/CSS\'de renk değişkenleri oluşturun',
116
+ 'Önceden tasarım yapmadan uyumlu temalar'
117
+ ],
118
+ highlight: true
119
+ },
120
+ {
121
+ title: 'Dijital Sanatçılar ve İllüstratörler',
122
+ description: 'Filmlerden, doğadan veya sanattan kromatik referanslar yakalayın',
123
+ icon: 'mdi:brush',
124
+ points: [
125
+ 'Usta yapıtlardan referans paletleri',
126
+ 'Sinematik renk çalışmaları',
127
+ 'Anında görsel ilham'
128
+ ]
129
+ },
130
+ {
131
+ title: 'Marka Uzmanları',
132
+ description: 'Rehber fotoğraflara dayalı görsel kimlikler geliştirin',
133
+ icon: 'mdi:tag-multiple',
134
+ points: [
135
+ 'Görsellerden marka renklerini çıkarın',
136
+ 'Profesyonel kromatik kılavuzlar oluşturun',
137
+ 'Görsel tutarlılığı sağlayın'
138
+ ]
139
+ }
140
+ ], columns: 2 },
141
+
142
+ { type: 'title', text: 'Uygulamalı Renk Teorisi', level: 3 },
143
+ { type: 'table', headers: ['Renk Kavramı', 'Tanım', 'Pratik Uygulama'], rows: [
144
+ ['Kromatik Uyum', 'Görsel olarak dengeli renk kombinasyonu', 'UI\'da tutarlı görsel kimlik'],
145
+ ['Kontrast', 'Renkler arasındaki parlaklık farkı', 'Okunabilirlik ve görsel hiyerarşi'],
146
+ ['Doygunluk', 'Bir tonun renk yoğunluğu', 'Profesyonellik (düşük) vs Enerji (yüksek)'],
147
+ ['Renk Sıcaklığı', 'Sıcak renkler (kırmızılar) vs soğuk renkler (maviler)', 'Tasarımın duygusal psikolojisi'],
148
+ ['Monokromatik Palet', 'Tek bir tonun varyasyonları', 'Zerafet ve minimalizm']
149
+ ] },
150
+
151
+ { type: 'proscons', items: [
152
+ {
153
+ pro: 'Çıkarmada matematiksel hassasiyet - yaklaşık bir görsel seçim değil',
154
+ con: 'Çok fazla piksele sahiplerse zar zor görünen renkler dahil edilebilir'
155
+ },
156
+ {
157
+ pro: 'Anında panoya kopyalama - iş akışıyla mükemmel entegrasyon',
158
+ con: 'Canvas API ile uyumlu modern bir tarayıcı gerektirir'
159
+ },
160
+ {
161
+ pro: 'Tam gizlilik - veri gönderimi olmadan %100 yerel analiz',
162
+ con: 'Önceki analizlerin geçmişi kaydedilmez'
163
+ },
164
+ {
165
+ pro: 'Herhangi bir dijital görüntü formatıyla uyumlu',
166
+ con: 'Son renkler görüntü sıkıştırmasına ve kalitesine bağlıdır'
167
+ }
168
+ ], proTitle: 'Avantajlar', conTitle: 'Sınırlamalar' },
169
+
170
+ { type: 'diagnostic', variant: 'success', title: 'Gerçekçi Renk Temsili', icon: 'mdi:check-circle-outline', badge: 'Gelişmiş Algoritma', html: 'Sadece rastgele piksellerden örnek alan araçların aksine, sistemimiz her tonun tüm piksel sayısını ağırlıklandıran Median Cut algoritmasını kullanır ve ortaya çıkan paletin orijinal görüntünün görsel atmosferini ve renk psikolojisini sadık bir şekilde yansıtmasını sağlar.' },
171
+
172
+ { type: 'glossary', items: [
173
+ {
174
+ term: 'Median Cut',
175
+ definition: 'RGB alanını özyinelemeli olarak kutulara bölen, tek tip dağılım sağlayan renk niceleme algoritması. Tarihsel olarak GIF ve indeksli renk teknolojisinde kullanılmıştır.'
176
+ },
177
+ {
178
+ term: 'RGB Renk Alanı',
179
+ definition: 'Kırmızı, yeşil ve maviye dayalı renk modeli. Her renk bu üç değerin (0-255) kombinasyonu olarak temsil edilir. Dijital ekranlarda ve webde standarttır.'
180
+ },
181
+ {
182
+ term: 'HEX Kodu',
183
+ definition: 'Web\'de rengi temsil eden 6 haneli onaltılık gösterim (#RRGGBB): #FF0000 (kırmızı), #00FF00 (yeşil), #0000FF (mavi). CSS, Figma ve Adobe\'da evrenseldir.'
184
+ },
185
+ {
186
+ term: 'Renk Doygunluğu',
187
+ definition: 'Rengin yoğunluğu veya saflığı. Yüksek doygunluk = canlı renk; düşük doygunluk = grimsi renk. Tasarımın duygusal algısını etkiler.'
188
+ },
189
+ {
190
+ term: 'Kromatik Uyum',
191
+ definition: 'Görsel olarak hoş bir sonuç veren renklerin seçimi ve kombinasyonu. Monokromatik, tamamlayıcı, benzer veya üçlü olabilir.'
192
+ }
193
+ ] },
194
+
195
+ { type: 'message', title: 'Profesyonel Kromatik Analiz', ariaLabel: 'Renk analizi hakkında teknik bilgiler', html: 'Chromatic Lens, manuel görsel analizi algoritmik hassasiyete dönüştürür. Sadece renkleri çıkarmaz: Herhangi bir görüntünün duygusal ve görsel özünü yakalayarak doğrudan kullanıma hazır HEX kodları olarak panonuza koyar. Tam gizlilik, analiz hacminde sınır yok.' },
196
+
197
+ { type: 'title', text: 'Görsel İlhamdan Tasarım', level: 3 },
198
+ { type: 'paragraph', html: 'En iyi renk paleti, referansınızın görsel niyetini yakalayan palettir. Chromatic Lens, eskiden manuel bir süreç olan gözlemleme, analiz etme ve not etme aşamalarını otomatikleştirir. Artık sadece bir görüntüyü sürükleyin ve saniyeler içinde profesyonel HEX kodları alın.' }
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: 'tr',
232
+ };
233
+
234
+ export const content: ChromaticLensLocaleContent = {
235
+ slug,
236
+ title,
237
+ description,
238
+ ui,
239
+ seo,
240
+ faqTitle: "Sıkça Sorulan Sorular",
241
+ faq,
242
+ bibliographyTitle: "Referanslar",
243
+ bibliography,
244
+ howTo,
245
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
246
+ };