@jjlmoya/utils-creative 1.20.0 → 1.22.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 (148) hide show
  1. package/package.json +4 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/ru.ts +1 -1
  4. package/src/data.ts +2 -1
  5. package/src/entries.ts +3 -1
  6. package/src/index.ts +3 -0
  7. package/src/layouts/PreviewLayout.astro +7 -2
  8. package/src/tests/diacritics_density.test.ts +118 -0
  9. package/src/tests/inverted_punctuation.test.ts +84 -0
  10. package/src/tests/locale_completeness.test.ts +2 -14
  11. package/src/tests/no_en_dash.test.ts +70 -0
  12. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  13. package/src/tests/script_density.test.ts +94 -0
  14. package/src/tests/tool_validation.test.ts +2 -2
  15. package/src/tool/bead-pattern-generator/bibliography.astro +2 -12
  16. package/src/tool/bead-pattern-generator/bibliography.ts +5 -0
  17. package/src/tool/bead-pattern-generator/component.astro +2 -2
  18. package/src/tool/bead-pattern-generator/entry.ts +0 -1
  19. package/src/tool/bead-pattern-generator/i18n/de.ts +4 -8
  20. package/src/tool/bead-pattern-generator/i18n/en.ts +4 -8
  21. package/src/tool/bead-pattern-generator/i18n/es.ts +4 -8
  22. package/src/tool/bead-pattern-generator/i18n/fr.ts +5 -9
  23. package/src/tool/bead-pattern-generator/i18n/id.ts +4 -8
  24. package/src/tool/bead-pattern-generator/i18n/it.ts +4 -8
  25. package/src/tool/bead-pattern-generator/i18n/ja.ts +4 -8
  26. package/src/tool/bead-pattern-generator/i18n/ko.ts +4 -8
  27. package/src/tool/bead-pattern-generator/i18n/nl.ts +4 -8
  28. package/src/tool/bead-pattern-generator/i18n/pl.ts +4 -8
  29. package/src/tool/bead-pattern-generator/i18n/pt.ts +4 -8
  30. package/src/tool/bead-pattern-generator/i18n/ru.ts +8 -12
  31. package/src/tool/bead-pattern-generator/i18n/sv.ts +4 -8
  32. package/src/tool/bead-pattern-generator/i18n/tr.ts +4 -8
  33. package/src/tool/bead-pattern-generator/i18n/zh.ts +7 -11
  34. package/src/tool/dice-roller/bibliography.astro +3 -12
  35. package/src/tool/dice-roller/bibliography.ts +5 -0
  36. package/src/tool/dice-roller/entry.ts +0 -1
  37. package/src/tool/dice-roller/i18n/de.ts +12 -16
  38. package/src/tool/dice-roller/i18n/en.ts +12 -16
  39. package/src/tool/dice-roller/i18n/es.ts +11 -15
  40. package/src/tool/dice-roller/i18n/fr.ts +18 -22
  41. package/src/tool/dice-roller/i18n/id.ts +12 -16
  42. package/src/tool/dice-roller/i18n/it.ts +11 -15
  43. package/src/tool/dice-roller/i18n/ja.ts +9 -13
  44. package/src/tool/dice-roller/i18n/ko.ts +10 -14
  45. package/src/tool/dice-roller/i18n/nl.ts +12 -16
  46. package/src/tool/dice-roller/i18n/pl.ts +11 -15
  47. package/src/tool/dice-roller/i18n/pt.ts +12 -16
  48. package/src/tool/dice-roller/i18n/ru.ts +18 -22
  49. package/src/tool/dice-roller/i18n/sv.ts +12 -16
  50. package/src/tool/dice-roller/i18n/tr.ts +10 -14
  51. package/src/tool/dice-roller/i18n/zh.ts +16 -20
  52. package/src/tool/excuse-generator/bibliography.astro +2 -12
  53. package/src/tool/excuse-generator/bibliography.ts +3 -0
  54. package/src/tool/excuse-generator/entry.ts +0 -1
  55. package/src/tool/excuse-generator/i18n/de.ts +7 -9
  56. package/src/tool/excuse-generator/i18n/en.ts +2 -4
  57. package/src/tool/excuse-generator/i18n/es.ts +2 -4
  58. package/src/tool/excuse-generator/i18n/fr.ts +4 -6
  59. package/src/tool/excuse-generator/i18n/id.ts +2 -4
  60. package/src/tool/excuse-generator/i18n/it.ts +2 -4
  61. package/src/tool/excuse-generator/i18n/ja.ts +2 -4
  62. package/src/tool/excuse-generator/i18n/ko.ts +2 -4
  63. package/src/tool/excuse-generator/i18n/nl.ts +2 -4
  64. package/src/tool/excuse-generator/i18n/pl.ts +7 -9
  65. package/src/tool/excuse-generator/i18n/pt.ts +2 -4
  66. package/src/tool/excuse-generator/i18n/ru.ts +7 -9
  67. package/src/tool/excuse-generator/i18n/sv.ts +2 -4
  68. package/src/tool/excuse-generator/i18n/tr.ts +2 -4
  69. package/src/tool/excuse-generator/i18n/zh.ts +9 -11
  70. package/src/tool/fortune-cookie/bibliography.astro +2 -12
  71. package/src/tool/fortune-cookie/bibliography.ts +3 -0
  72. package/src/tool/fortune-cookie/component.astro +7 -10
  73. package/src/tool/fortune-cookie/entry.ts +0 -1
  74. package/src/tool/fortune-cookie/i18n/de.ts +6 -9
  75. package/src/tool/fortune-cookie/i18n/en.ts +6 -9
  76. package/src/tool/fortune-cookie/i18n/es.ts +2 -4
  77. package/src/tool/fortune-cookie/i18n/fr.ts +7 -10
  78. package/src/tool/fortune-cookie/i18n/id.ts +6 -9
  79. package/src/tool/fortune-cookie/i18n/it.ts +3 -6
  80. package/src/tool/fortune-cookie/i18n/ja.ts +2 -5
  81. package/src/tool/fortune-cookie/i18n/ko.ts +2 -5
  82. package/src/tool/fortune-cookie/i18n/nl.ts +6 -9
  83. package/src/tool/fortune-cookie/i18n/pl.ts +6 -9
  84. package/src/tool/fortune-cookie/i18n/pt.ts +6 -9
  85. package/src/tool/fortune-cookie/i18n/ru.ts +17 -20
  86. package/src/tool/fortune-cookie/i18n/sv.ts +6 -9
  87. package/src/tool/fortune-cookie/i18n/tr.ts +5 -8
  88. package/src/tool/fortune-cookie/i18n/zh.ts +7 -10
  89. package/src/tool/glitch-image-distorter/bibliography.astro +8 -0
  90. package/src/tool/glitch-image-distorter/bibliography.ts +4 -0
  91. package/src/tool/glitch-image-distorter/component.astro +393 -0
  92. package/src/tool/glitch-image-distorter/entry.ts +48 -0
  93. package/src/tool/glitch-image-distorter/glitch-image-distorter.css +233 -0
  94. package/src/tool/glitch-image-distorter/i18n/de.ts +131 -0
  95. package/src/tool/glitch-image-distorter/i18n/en.ts +131 -0
  96. package/src/tool/glitch-image-distorter/i18n/es.ts +131 -0
  97. package/src/tool/glitch-image-distorter/i18n/fr.ts +131 -0
  98. package/src/tool/glitch-image-distorter/i18n/id.ts +131 -0
  99. package/src/tool/glitch-image-distorter/i18n/it.ts +131 -0
  100. package/src/tool/glitch-image-distorter/i18n/ja.ts +131 -0
  101. package/src/tool/glitch-image-distorter/i18n/ko.ts +131 -0
  102. package/src/tool/glitch-image-distorter/i18n/nl.ts +131 -0
  103. package/src/tool/glitch-image-distorter/i18n/pl.ts +131 -0
  104. package/src/tool/glitch-image-distorter/i18n/pt.ts +131 -0
  105. package/src/tool/glitch-image-distorter/i18n/ru.ts +131 -0
  106. package/src/tool/glitch-image-distorter/i18n/sv.ts +131 -0
  107. package/src/tool/glitch-image-distorter/i18n/tr.ts +131 -0
  108. package/src/tool/glitch-image-distorter/i18n/zh.ts +131 -0
  109. package/src/tool/glitch-image-distorter/index.ts +9 -0
  110. package/src/tool/glitch-image-distorter/seo.astro +15 -0
  111. package/src/tool/synesthesia-painter/bibliography.astro +3 -12
  112. package/src/tool/synesthesia-painter/bibliography.ts +5 -0
  113. package/src/tool/synesthesia-painter/entry.ts +0 -1
  114. package/src/tool/synesthesia-painter/i18n/de.ts +14 -18
  115. package/src/tool/synesthesia-painter/i18n/en.ts +5 -9
  116. package/src/tool/synesthesia-painter/i18n/es.ts +4 -8
  117. package/src/tool/synesthesia-painter/i18n/fr.ts +10 -14
  118. package/src/tool/synesthesia-painter/i18n/id.ts +5 -9
  119. package/src/tool/synesthesia-painter/i18n/it.ts +2 -6
  120. package/src/tool/synesthesia-painter/i18n/ja.ts +4 -8
  121. package/src/tool/synesthesia-painter/i18n/ko.ts +4 -8
  122. package/src/tool/synesthesia-painter/i18n/nl.ts +4 -8
  123. package/src/tool/synesthesia-painter/i18n/pl.ts +14 -18
  124. package/src/tool/synesthesia-painter/i18n/pt.ts +5 -9
  125. package/src/tool/synesthesia-painter/i18n/ru.ts +17 -21
  126. package/src/tool/synesthesia-painter/i18n/sv.ts +5 -9
  127. package/src/tool/synesthesia-painter/i18n/tr.ts +4 -8
  128. package/src/tool/synesthesia-painter/i18n/zh.ts +15 -19
  129. package/src/tool/zalgo-generator/bibliography.astro +2 -12
  130. package/src/tool/zalgo-generator/bibliography.ts +5 -0
  131. package/src/tool/zalgo-generator/component.astro +1 -1
  132. package/src/tool/zalgo-generator/entry.ts +0 -1
  133. package/src/tool/zalgo-generator/i18n/de.ts +9 -13
  134. package/src/tool/zalgo-generator/i18n/en.ts +5 -9
  135. package/src/tool/zalgo-generator/i18n/es.ts +4 -8
  136. package/src/tool/zalgo-generator/i18n/fr.ts +9 -13
  137. package/src/tool/zalgo-generator/i18n/id.ts +5 -9
  138. package/src/tool/zalgo-generator/i18n/it.ts +4 -8
  139. package/src/tool/zalgo-generator/i18n/ja.ts +4 -8
  140. package/src/tool/zalgo-generator/i18n/ko.ts +4 -8
  141. package/src/tool/zalgo-generator/i18n/nl.ts +5 -9
  142. package/src/tool/zalgo-generator/i18n/pl.ts +9 -13
  143. package/src/tool/zalgo-generator/i18n/pt.ts +5 -9
  144. package/src/tool/zalgo-generator/i18n/ru.ts +9 -13
  145. package/src/tool/zalgo-generator/i18n/sv.ts +5 -9
  146. package/src/tool/zalgo-generator/i18n/tr.ts +5 -9
  147. package/src/tool/zalgo-generator/i18n/zh.ts +9 -13
  148. package/src/tools.ts +2 -0
@@ -0,0 +1,131 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { GlitchImageDistorterLocaleContent } from '../index';
4
+
5
+ const slug = 'distorsi-gambar-glitch';
6
+ const title = 'Distorsi Gambar Glitch';
7
+ const description = 'Ubah gambar menjadi seni glitch dengan pemisahan RGB, garis pemindaian, pengurutan piksel, dan distorsi animasi. Tanpa Photoshop.';
8
+
9
+ const faq: GlitchImageDistorterLocaleContent['faq'] = [
10
+ {
11
+ question: 'Apa itu seni glitch?',
12
+ answer: 'Seni glitch adalah bentuk seni digital yang dibuat dengan memanipulasi gambar atau data digital untuk menghasilkan kesalahan visual yang disengaja. "Glitch" ini menghasilkan warna yang terfragmentasi, bentuk yang terdistorsi, dan pola yang tidak terduga yang menciptakan estetika kerusakan digital dan kekacauan.',
13
+ },
14
+ {
15
+ question: 'Bisakah saya menggunakan gambar sendiri?',
16
+ answer: 'Ya! Anda dapat mengunggah gambar PNG, JPG, atau WebP apa pun, seret dan lepas ke kanvas, atau tempel gambar langsung dari papan klip menggunakan Ctrl+V. Anda juga dapat menggunakan gambar contoh.',
17
+ },
18
+ {
19
+ question: 'Apa fungsi dari berbagai efek distorsi?',
20
+ answer: 'Korupsi (Corruption) memisahkan saluran RGB untuk efek aberasi kromatik. Interferensi menambahkan garis pemindaian seperti monitor lama dengan getaran opsional. Pengurutan Piksel (Pixel Sorting) membuat piksel cerah "menetes" ke arah yang dipilih. Noise Statis menambahkan salju TV klasik.',
21
+ },
22
+ {
23
+ question: 'Bisakah saya menganimasikan efek glitch?',
24
+ answer: 'Tentu saja! Mode "Glitch Animate" menerapkan gerakan mikro-acak ke parameter, menciptakan efek bergetar yang hidup dan berulang terus menerus. Anda dapat mengekspor ini sebagai GIF animasi atau WebP.',
25
+ },
26
+ {
27
+ question: 'Format apa yang bisa saya ekspor?',
28
+ answer: 'Anda dapat mengunduh PNG berkualitas tinggi untuk penggunaan statis, atau mengekspor sebagai GIF atau WebP animasi jika mode animasi diaktifkan. Sempurna untuk Instagram, Discord, atau platform lainnya.',
29
+ },
30
+ {
31
+ question: 'Apa kegunaan tombol Chaos?',
32
+ answer: 'Tombol "Chaos Random" secara instan mengacak semua nilai slider, menciptakan kombinasi glitch yang tidak terduga dan seringkali mengejutkan. Sempurna untuk menjelajahi potensi kreatif tanpa penyesuaian manual.',
33
+ },
34
+ ];
35
+
36
+ const howTo: GlitchImageDistorterLocaleContent['howTo'] = [
37
+ { name: 'Muat gambar', text: 'Seret dan lepas gambar ke kanvas, tempel dengan Ctrl+V, unggah melalui tombol file, atau klik "Gunakan gambar contoh".' },
38
+ { name: 'Sesuaikan slider', text: 'Gunakan slider Korupsi, Interferensi, Pengurutan Piksel, dan Noise untuk menerapkan berbagai efek. Pratinjau diperbarui secara real-time.' },
39
+ { name: 'Aktifkan animasi', text: 'Aktifkan tombol "Glitch Animate" untuk menambahkan getaran dan kerlipan. Gambar akan menjadi hidup dengan efek glitch dinamis.' },
40
+ { name: 'Ekspor kreasi Anda', text: 'Unduh sebagai PNG untuk karya statis, atau ekspor sebagai GIF/WebP jika animasi diaktifkan. Bagikan seni glitch Anda di media sosial!' },
41
+ { name: 'Bereksperimen dengan Chaos', text: 'Klik tombol "Chaos Random" untuk menemukan kombinasi efek yang mengejutkan secara otomatis.' },
42
+ ];
43
+
44
+ const faqSchema: WithContext<FAQPage> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'FAQPage',
47
+ mainEntity: faq.map((item) => ({
48
+ '@type': 'Question',
49
+ name: item.question,
50
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
51
+ })),
52
+ };
53
+
54
+ const howToSchema: WithContext<HowTo> = {
55
+ '@context': 'https://schema.org',
56
+ '@type': 'HowTo',
57
+ name: title,
58
+ description,
59
+ step: howTo.map((step) => ({
60
+ '@type': 'HowToStep',
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilitiesApplication',
72
+ operatingSystem: 'Web',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
74
+ inLanguage: 'id',
75
+ };
76
+
77
+ export const content: GlitchImageDistorterLocaleContent = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
82
+ ui: {
83
+ title: 'Distorsi Glitch',
84
+ description: 'Buat seni glitch dalam hitungan detik.',
85
+ dragDropText: 'Seret gambar ke sini atau klik untuk mengunggah',
86
+ pasteHint: 'Tips: Anda juga bisa menempel gambar dengan Ctrl+V',
87
+ exampleImageBtn: 'Gunakan gambar contoh',
88
+ corruptionLabel: 'Korupsi (Pemisahan RGB)',
89
+ interferenceLabel: 'Interferensi (Garis)',
90
+ tremorLabel: 'Getaran',
91
+ pixelSortLabel: 'Pengurutan Piksel',
92
+ pixelSortDirectionLabel: 'Arah',
93
+ noiseLabel: 'Noise Statis',
94
+ animateBtn: 'Glitch Animate',
95
+ chaosBtn: 'Chaos Acak',
96
+ downloadPngBtn: 'Unduh PNG',
97
+ downloadGifBtn: 'Unduh GIF',
98
+ undoBtn: 'Urungkan',
99
+ redoBtn: 'Ulangi',
100
+ footerText: 'Buat seni digital rusak dalam waktu kurang dari 30 detik',
101
+ faqTitle: 'FAQ',
102
+ bibliographyTitle: 'Referensi'
103
+ },
104
+ seo: [
105
+ { type: 'title', text: 'Apa Itu Seni Glitch?', level: 2 },
106
+ { type: 'paragraph', html: '<strong>Seni glitch</strong> adalah praktik kreatif yang sengaja mengeksploitasi kesalahan digital, data yang rusak, dan artefak visual untuk menghasilkan hasil estetika. Berbeda dengan seni tradisional yang mencari kesempurnaan, glitch merayakan keindahan tak terduga dari kerusakan teknologi - warna yang terfragmentasi dan pola kacau yang muncul dari kesalahan.' },
107
+ { type: 'title', text: 'Asal-usul dan Estetika Digital', level: 3 },
108
+ { type: 'paragraph', html: 'Estetika glitch muncul pada awal tahun 2000-an ketika seniman digital mulai bereksperimen dengan file gambar yang rusak dan kegagalan perangkat keras. Seniman seperti <strong>Rosa Menkman</strong> mengangkat seni glitch ke status seni rupa dengan menyelidiki puitika artefak digital. Estetikanya mengambil inspirasi dari degradasi VHS, kesalahan transmisi, dan "noise" yang terlihat dari sistem digital.' },
109
+ { type: 'title', text: 'Teknik Utama Glitch', level: 3 },
110
+ { type: 'list', items: [
111
+ '<strong>Pemisahan RGB:</strong> Menggeser saluran warna merah, hijau, dan biru untuk menciptakan aberrasi kromatik.',
112
+ '<strong>Garis Pemindaian:</strong> Mensimulasikan garis horizontal monitor CRT lama untuk efek retro.',
113
+ '<strong>Pengurutan Piksel:</strong> Menyortir piksel berdasarkan kecerahan dan menggesernya untuk efek "meleleh".',
114
+ '<strong>Data Moshing:</strong> Memanipulasi data codec video untuk mencampur bingkai dengan cara yang tidak terduga.',
115
+ '<strong>Bit Shifting:</strong> Mengubah data biner secara langsung menghasilkan distorsi warna dan bentuk yang dramatis.',
116
+ ]},
117
+ { type: 'tip', title: 'Filosofi di Balik Glitch', html: 'Seni glitch menantang gagasan tentang representasi digital yang "sempurna". Dengan merangkul kesalahan, kita mempertanyakan keandalan teknologi dan mengeksplorasi bagaimana teknologi memediasi persepsi kita tentang realitas. Ini adalah seni tentang kegagalan sistem dan keindahan yang tersembunyi dalam kekacauan.' },
118
+ { type: 'title', text: 'Aplikasi Kontemporer', level: 3 },
119
+ { type: 'paragraph', html: 'Saat ini, estetika glitch ada di mana-mana: sampul album, video musik, fesyen, dan desain grafis. Alat ini mendemokratisasi pembuatan seni glitch, memungkinkan siapa saja untuk menghasilkan kerusakan digital yang terlihat profesional tanpa pengetahuan teknis yang mendalam.' },
120
+ { type: 'stats', items: [
121
+ { value: '2000-an', label: 'Munculnya seni glitch', icon: 'mdi:history' },
122
+ { value: '∞', label: 'Kemungkinan kombinasi', icon: 'mdi:shuffle-variant' },
123
+ { value: '<30 dtk', label: 'Waktu pembuatan', icon: 'mdi:flash' },
124
+ { value: '3+', label: 'Format ekspor', icon: 'mdi:download-multiple' },
125
+ ], columns: 4 },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
131
+ };
@@ -0,0 +1,131 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { GlitchImageDistorterLocaleContent } from '../index';
4
+
5
+ const slug = 'distorsore-immagini-glitch';
6
+ const title = 'Distorsore di Immagini Glitch';
7
+ const description = 'Trasforma le tue foto in glitch art con separazioni RGB, linee di scansione, pixel sorting e distorsioni animate. Senza Photoshop.';
8
+
9
+ const faq: GlitchImageDistorterLocaleContent['faq'] = [
10
+ {
11
+ question: 'Cos\'è la glitch art?',
12
+ answer: 'La glitch art è una forma di arte digitale creata manipolando immagini o dati per produrre errori visivi intenzionali. Questi "glitch" generano colori frammentati, forme distorte e pattern imprevedibili che creano un\'estetica di corruzione digitale e caos.',
13
+ },
14
+ {
15
+ question: 'Posso usare le mie immagini?',
16
+ answer: 'Sì! Puoi caricare qualsiasi immagine PNG, JPG o WebP, trascinarla sulla tela o incollarla direttamente dagli appunti con Ctrl+V. Puoi anche usare l\'immagine di esempio.',
17
+ },
18
+ {
19
+ question: 'Cosa fanno i diversi effetti di distorsione?',
20
+ answer: 'La Corruzione separa i canali RGB per un effetto di aberrazione cromatica. L\'Interferenza aggiunge linee di scansione simili ai vecchi monitor con tremolio opzionale. Il Pixel Sorting fa "gocciolare" i pixel luminosi in una direzione. Il Rumore Statico aggiunge la classica neve televisiva.',
21
+ },
22
+ {
23
+ question: 'Posso animare l\'effetto glitch?',
24
+ answer: 'Certamente! La modalità "Animazione Glitch" applica micro-movimenti casuali ai parametri, creando un effetto vibrante che si ripete continuamente. Puoi esportarlo come GIF animata o WebP.',
25
+ },
26
+ {
27
+ question: 'Quali formati posso esportare?',
28
+ answer: 'Puoi scaricare un PNG di alta qualità per immagini statiche, o esportare come GIF o WebP animato se hai attivato la modalità animazione. Perfetto per Instagram, Discord o altre piattaforme.',
29
+ },
30
+ {
31
+ question: 'Cosa fa il pulsante Caos?',
32
+ answer: 'Il pulsante "Caos Casuale" randomizza istantaneamente tutti i valori dei cursori, creando combinazioni di glitch inaspettate e sorprendenti. Ideale per esplorare il potenziale creativo senza regolazioni manuali.',
33
+ },
34
+ ];
35
+
36
+ const howTo: GlitchImageDistorterLocaleContent['howTo'] = [
37
+ { name: 'Carica un\'immagine', text: 'Trascina un\'immagine, incollala con Ctrl+V, caricala dal tuo dispositivo o clicca su "Usa immagine di esempio".' },
38
+ { name: 'Regola i cursori', text: 'Usa i controlli di Corruzione, Interferenza, Pixel Sorting e Rumore per applicare diversi effetti. L\'anteprima si aggiorna in tempo reale.' },
39
+ { name: 'Attiva l\'animazione', text: 'Premi il pulsante "Animazione Glitch" per aggiungere vibrazioni e sfarfallii casuali. L\'immagine prenderà vita con un effetto dinamico.' },
40
+ { name: 'Esporta la creazione', text: 'Scarica in PNG per arte statica o esporta in GIF/WebP se l\'animazione è attiva. Condividi la tua glitch art sui social!' },
41
+ { name: 'Sperimenta con il Caos', text: 'Clicca sul pulsante "Caos Casuale" per scoprire automaticamente combinazioni di effetti sorprendenti.' },
42
+ ];
43
+
44
+ const faqSchema: WithContext<FAQPage> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'FAQPage',
47
+ mainEntity: faq.map((item) => ({
48
+ '@type': 'Question',
49
+ name: item.question,
50
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
51
+ })),
52
+ };
53
+
54
+ const howToSchema: WithContext<HowTo> = {
55
+ '@context': 'https://schema.org',
56
+ '@type': 'HowTo',
57
+ name: title,
58
+ description,
59
+ step: howTo.map((step) => ({
60
+ '@type': 'HowToStep',
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilitiesApplication',
72
+ operatingSystem: 'Web',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
74
+ inLanguage: 'it',
75
+ };
76
+
77
+ export const content: GlitchImageDistorterLocaleContent = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: 'Domande Frequenti',
82
+ ui: {
83
+ title: 'Glitch Distorter',
84
+ description: 'Crea glitch art in pochi secondi.',
85
+ dragDropText: 'Trascina un\'immagine qui o clicca per caricare',
86
+ pasteHint: 'Suggerimento: Puoi anche incollare un\'immagine con Ctrl+V',
87
+ exampleImageBtn: 'Usa immagine di esempio',
88
+ corruptionLabel: 'Corruzione (Separazione RGB)',
89
+ interferenceLabel: 'Interferenza (Linee)',
90
+ tremorLabel: 'Tremolio',
91
+ pixelSortLabel: 'Pixel Sorting',
92
+ pixelSortDirectionLabel: 'Direzione',
93
+ noiseLabel: 'Rumore Statico',
94
+ animateBtn: 'Animazione Glitch',
95
+ chaosBtn: 'Caos Casuale',
96
+ downloadPngBtn: 'Scarica PNG',
97
+ downloadGifBtn: 'Scarica GIF',
98
+ undoBtn: 'Annulla',
99
+ redoBtn: 'Ripristina',
100
+ footerText: 'Crea arte digitale corrotta in meno di 30 secondi',
101
+ faqTitle: 'FAQ',
102
+ bibliographyTitle: 'Riferimenti'
103
+ },
104
+ seo: [
105
+ { type: 'title', text: 'Cos\'è la Glitch Art?', level: 2 },
106
+ { type: 'paragraph', html: 'La <strong>glitch art</strong> è una pratica creativa che sfrutta intenzionalmente errori digitali, dati corrotti e artefatti visivi per produrre risultati estetici. A differenza dell\'arte tradizionale, che cerca la perfezione, il glitch celebra la bellezza inaspettata del guasto tecnologico - colori frammentati e pattern caotici che emergono dall\'errore.' },
107
+ { type: 'title', text: 'Origini ed Estetica Digitale', level: 3 },
108
+ { type: 'paragraph', html: 'L\'estetica glitch è emersa all\'inizio degli anni 2000, quando gli artisti digitali hanno iniziato a sperimentare con file corrotti e malfunzionamenti hardware. Artisti come <strong>Rosa Menkman</strong> hanno elevato il glitch a forma d\'arte studiando la poetica degli artefatti digitali. L\'estetica trae ispirazione dal degrado VHS, dagli errori di trasmissione e dal "rumore" dei sistemi digitali.' },
109
+ { type: 'title', text: 'Tecniche Chiave di Glitch', level: 3 },
110
+ { type: 'list', items: [
111
+ '<strong>Separazione RGB:</strong> Sfasare i canali rosso, verde e blu per creare aberrazione cromatica.',
112
+ '<strong>Linee di Scansione:</strong> Simulare le linee orizzontali dei vecchi monitor CRT per un effetto retro.',
113
+ '<strong>Pixel Sorting:</strong> Ordinare i pixel per luminosità e spostarli per creare un effetto "sciolto".',
114
+ '<strong>Data Moshing:</strong> Manipolare i dati dei codec video per mescolare i fotogrammi in modo inaspettato.',
115
+ '<strong>Bit Shifting:</strong> Alterare direttamente i dati binari per ottenere distorsioni geometriche drammatiche.',
116
+ ]},
117
+ { type: 'tip', title: 'La Filosofia del Glitch', html: 'La glitch art sfida l\'idea di una rappresentazione digitale "perfetta". Abbracciando l\'errore, mettiamo in discussione l\'affidabilità della tecnologia ed esploriamo come essa influenzi la nostra percezione della realtà. È arte sul fallimento del sistema e sulla bellezza nascosta nel caos.' },
118
+ { type: 'title', text: 'Applicazioni Contemporanee', level: 3 },
119
+ { type: 'paragraph', html: 'Oggi l\'estetica glitch è ovunque: copertine di dischi, videoclip, moda e graphic design. Questo strumento democratizza la creazione di questo stile, permettendo a chiunque di generare opere professionali di corruzione digitale senza profonde conoscenze tecniche.' },
120
+ { type: 'stats', items: [
121
+ { value: '2000s', label: 'Nascita della glitch art', icon: 'mdi:history' },
122
+ { value: '∞', label: 'Combinazioni possibili', icon: 'mdi:shuffle-variant' },
123
+ { value: '<30s', label: 'Tempo di creazione', icon: 'mdi:flash' },
124
+ { value: '3+', label: 'Formati di esportazione', icon: 'mdi:download-multiple' },
125
+ ], columns: 4 },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
131
+ };
@@ -0,0 +1,131 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { GlitchImageDistorterLocaleContent } from '../index';
4
+
5
+ const slug = 'glitch-image-distorter';
6
+ const title = 'グリッチアート・ジェネレーター';
7
+ const description = 'RGB分解、スキャンライン、ピクセルソート、アニメーションなど、Photoshopを使わずに画像を魅力的なグリッチアートに変換します。';
8
+
9
+ const faq: GlitchImageDistorterLocaleContent['faq'] = [
10
+ {
11
+ question: 'グリッチアートとは何ですか?',
12
+ answer: 'グリッチアートは、デジタル画像やデータを意図的に操作して視覚的なエラーを引き起こすデジタルアートの一種です。色の断片化、形の歪み、予測不能なパターンなどが「グリッチ(故障)」として現れ、デジタルの破損やカオスといった独自の美学を生み出します。',
13
+ },
14
+ {
15
+ question: '自分の画像を使えますか?',
16
+ answer: 'はい!PNG、JPG、WebP形式の画像をアップロードしたり、キャンバスにドラッグ&ドロップしたり、Ctrl+Vでクリップボードから直接貼り付けたりできます。サンプル画像を使って試すことも可能です。',
17
+ },
18
+ {
19
+ question: '各エフェクトにはどのような効果がありますか?',
20
+ answer: '「Corruption」はRGBチャンネルを分離して色収差のような効果を与えます。「Interference」は古いモニターのようなスキャンラインと震えを追加します。「Pixel Sorting」は明るいピクセルを選択した方向に「流し」ます。「Static Noise」はテレビの砂嵐のようなノイズを重ねます。',
21
+ },
22
+ {
23
+ question: 'グリッチを動かすことはできますか?',
24
+ answer: 'はい!「グリッチ・アニメーション」モードをオンにすると、パラメータに微細なランダムの動きが加わり、常に変化し続ける生き生きとしたエフェクトが生まれます。これをアニメーションGIFやWebPとして書き出すことができます。',
25
+ },
26
+ {
27
+ question: 'どのような形式で書き出せますか?',
28
+ answer: '静止画用の高品質なPNG形式のほか、アニメーションモードが有効な場合はアニメーションGIFやWebP形式で書き出すことができます。InstagramやDiscordなどでの共有に最適です。',
29
+ },
30
+ {
31
+ question: '「カオス」ボタンは何をするものですか?',
32
+ answer: '「カオス・ランダム」ボタンを押すと、すべてのスライダーの値が一瞬でランダム化され、予想外で驚きのあるグリッチの組み合わせが生成されます。手動で調整せずにツールの創造的な可能性を探索するのに最適です。',
33
+ },
34
+ ];
35
+
36
+ const howTo: GlitchImageDistorterLocaleContent['howTo'] = [
37
+ { name: '画像を読み込む', text: '画像をキャンバスにドラッグ&ドロップするか、Ctrl+Vで貼り付けるか、ファイル選択ボタンからアップロードしてください。サンプル画像で始めることもできます。' },
38
+ { name: 'スライダーを調整する', text: 'Corruption、Interference、Pixel Sort、Noiseのスライダーを使って、様々なグリッチエフェクトを適用します。プレビューはリアルタイムで更新されます。' },
39
+ { name: 'アニメーションを有効にする', text: '「グリッチ・アニメーション」ボタンをオンにすると、振動やちらつきが追加されます。画像がダイナミックなグリッチエフェクトで動き出します。' },
40
+ { name: '作品を書き出す', text: '静止画ならPNG形式で、アニメーションならGIF/WebP形式でダウンロードしてください。グリッチアートをSNSで共有しましょう!' },
41
+ { name: 'カオスで実験する', text: '「カオス・ランダム」ボタンをクリックして、驚きの組み合わせを自動で見つけ出しましょう。' },
42
+ ];
43
+
44
+ const faqSchema: WithContext<FAQPage> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'FAQPage',
47
+ mainEntity: faq.map((item) => ({
48
+ '@type': 'Question',
49
+ name: item.question,
50
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
51
+ })),
52
+ };
53
+
54
+ const howToSchema: WithContext<HowTo> = {
55
+ '@context': 'https://schema.org',
56
+ '@type': 'HowTo',
57
+ name: title,
58
+ description,
59
+ step: howTo.map((step) => ({
60
+ '@type': 'HowToStep',
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilitiesApplication',
72
+ operatingSystem: 'Web',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
74
+ inLanguage: 'ja',
75
+ };
76
+
77
+ export const content: GlitchImageDistorterLocaleContent = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: 'よくある質問',
82
+ ui: {
83
+ title: 'グリッチ・ディストーター',
84
+ description: '数秒でグリッチアートを作成。',
85
+ dragDropText: '画像をドラッグ&ドロップするか、クリックしてアップロード',
86
+ pasteHint: 'ヒント: Ctrl+Vで画像を貼り付けることもできます',
87
+ exampleImageBtn: 'サンプル画像を使用',
88
+ corruptionLabel: '破損 (RGB分離)',
89
+ interferenceLabel: '干渉 (ライン)',
90
+ tremorLabel: '震え',
91
+ pixelSortLabel: 'ピクセルソート',
92
+ pixelSortDirectionLabel: '方向',
93
+ noiseLabel: '砂嵐ノイズ',
94
+ animateBtn: 'グリッチ・アニメ',
95
+ chaosBtn: 'カオス・ランダム',
96
+ downloadPngBtn: 'PNGダウンロード',
97
+ downloadGifBtn: 'GIFダウンロード',
98
+ undoBtn: '元に戻す',
99
+ redoBtn: 'やり直し',
100
+ footerText: '30秒以内に破損したデジタルアートを作成',
101
+ faqTitle: 'FAQ',
102
+ bibliographyTitle: '参考文献'
103
+ },
104
+ seo: [
105
+ { type: 'title', text: 'グリッチアートとは?', level: 2 },
106
+ { type: 'paragraph', html: '<strong>グリッチアート</strong>とは、デジタルのエラーや破損したデータ、視覚的なノイズをあえて利用して美的な結果を生み出す創作活動です。完璧さを追求する伝統的な芸術とは対照的に、グリッチは技術的な故障から生まれる予想外の美しさ、つまり断片化された色やエラーから生じるカオスなパターンを肯定します。' },
107
+ { type: 'title', text: '起源とデジタルの美学', level: 3 },
108
+ { type: 'paragraph', html: 'グリッチの美学は、2000年代初頭にデジタルアーティストたちが破損した画像ファイルやハードウェアの不具合を実験的に使い始めたことで生まれました。<strong>ローザ・メンクマン</strong>のようなアーティストは、デジタルノイズの詩学を調査することで、グリッチアートを美術の域まで高めました。この美学は、VHSの劣化、通信エラー、デジタルシステムの可視化された「ノイズ」からインスピレーションを得ています。' },
109
+ { type: 'title', text: '主なグリッチ技法', level: 3 },
110
+ { type: 'list', items: [
111
+ '<strong>RGB分離:</strong> 赤、緑、青のカラーチャンネルをずらして色収差を作成する手法。',
112
+ '<strong>スキャンライン:</strong> 古いCRTモニターの水平線をシミュレートし、レトロな雰囲気を加える手法。',
113
+ '<strong>ピクセルソート:</strong> 輝度などでピクセルを並べ替えてずらすことで、「溶ける」ような効果を作る手法。',
114
+ '<strong>データモッシング:</strong> ビデオコーデックのデータを操作して、フレームを予期せぬ方法で混ぜ合わせる手法。',
115
+ '<strong>ビットシフト:</strong> バイナリデータを直接書き換えることで、劇的な色や形の歪みを生み出す手法。',
116
+ ]},
117
+ { type: 'tip', title: 'グリッチの背景にある哲学', html: 'グリッチアートは、「完璧な」デジタル表現という概念に疑問を投げかけます。あえてエラーを受け入れることで、テクノロジーの信頼性を問い直し、テクノロジーが私たちの現実認識をどのように媒介しているかを探求します。それはシステムの失敗、そしてカオスの中に隠された美しさについての芸術なのです。' },
118
+ { type: 'title', text: '現代における応用', level: 3 },
119
+ { type: 'paragraph', html: '今日、グリッチの美学はアルバムジャケット、ミュージックビデオ、ファッション、グラフィックデザインなど、あらゆる場所で見られます。このツールはグリッチアート作成を民主化し、深い技術的知識がなくても誰でもプロのようなデジタル破損作品を作成できるようにします。' },
120
+ { type: 'stats', items: [
121
+ { value: '2000s', label: 'グリッチアートの誕生', icon: 'mdi:history' },
122
+ { value: '∞', label: '無限の組み合わせ', icon: 'mdi:shuffle-variant' },
123
+ { value: '<30s', label: '作成時間', icon: 'mdi:flash' },
124
+ { value: '3+', label: '書き出し形式', icon: 'mdi:download-multiple' },
125
+ ], columns: 4 },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
131
+ };
@@ -0,0 +1,131 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { GlitchImageDistorterLocaleContent } from '../index';
4
+
5
+ const slug = 'glitch-image-distorter';
6
+ const title = '글리치 아트 생성기';
7
+ const description = 'RGB 분리, 스캔라인, 픽셀 정렬 및 애니메이션 왜곡을 사용하여 이미지를 매혹적인 글리치 아트로 변환하세요. 포토샵 없이도 가능합니다.';
8
+
9
+ const faq: GlitchImageDistorterLocaleContent['faq'] = [
10
+ {
11
+ question: '글리치 아트란 무엇인가요?',
12
+ answer: '글리치 아트는 디지털 이미지나 데이터를 의도적으로 조작하여 시각적 오류를 만들어내는 디지털 아트의 한 형태입니다. 이러한 "글리치(오류)"는 파편화된 색상, 왜곡된 형태, 예측 불가능한 패턴을 만들어내며 디지털 파괴와 혼돈의 미학을 형성합니다.',
13
+ },
14
+ {
15
+ question: '내 이미지를 사용할 수 있나요?',
16
+ answer: '네! PNG, JPG, WebP 형식의 이미지를 업로드하거나 캔버스에 드래그 앤 드롭할 수 있으며, Ctrl+V를 눌러 클립보드에서 직접 붙여넣을 수도 있습니다. 샘플 이미지를 사용하여 도구를 테스트해 볼 수도 있습니다.',
17
+ },
18
+ {
19
+ question: '각 왜곡 효과는 어떤 역할을 하나요?',
20
+ answer: 'Corruption은 RGB 채널을 분리하여 색수차 효과를 줍니다. Interference는 오래된 모니터와 같은 스캔라인과 미세한 떨림을 추가합니다. Pixel Sorting은 밝은 픽셀을 선택한 방향으로 "흐르게" 만듭니다. Static Noise는 고전적인 TV 노이즈를 겹칩니다.',
21
+ },
22
+ {
23
+ question: '글리치 효과를 움직이게 할 수 있나요?',
24
+ answer: '물론입니다! "글리치 애니메이션" 모드를 켜면 매개변수에 미세한 무작위 움직임이 적용되어 끊임없이 변화하는 생동감 있는 효과가 생성됩니다. 이를 애니메이션 GIF나 WebP로 내보낼 수 있습니다.',
25
+ },
26
+ {
27
+ question: '어떤 형식으로 저장할 수 있나요?',
28
+ answer: '정적 이미지는 고화질 PNG로 다운로드할 수 있으며, 애니메이션 모드가 켜진 경우 애니메이션 GIF 또는 WebP로 내보낼 수 있습니다. 인스타그램, 디스코드 등 소셜 미디어 공유에 최적화되어 있습니다.',
29
+ },
30
+ {
31
+ question: '카오스 버튼은 무엇을 하나요?',
32
+ answer: '"카오스 랜덤" 버튼을 누르면 모든 슬라이더 값이 즉시 무작위로 설정되어 예상치 못한 놀라운 글리치 조합이 생성됩니다. 수동 조절 없이 도구의 창의적 가능성을 탐색하기에 완벽합니다.',
33
+ },
34
+ ];
35
+
36
+ const howTo: GlitchImageDistorterLocaleContent['howTo'] = [
37
+ { name: '이미지 불러오기', text: '이미지를 캔버스에 드래그 앤 드롭하거나 Ctrl+V로 붙여넣으세요. 파일 버튼으로 업로드하거나 "샘플 이미지 사용"을 클릭하여 시작할 수도 있습니다.' },
38
+ { name: '슬라이더 조정하기', text: 'Corruption, Interference, Pixel Sort, Noise 슬라이더를 사용하여 다양한 글리치 효과를 적용하세요. 미리보기가 실시간으로 업데이트됩니다.' },
39
+ { name: '애니메이션 활성화', text: '"글리치 애니메이션" 버튼을 켜서 진동과 깜빡임을 추가하세요. 이미지가 역동적인 글리치 효과와 함께 살아 움직입니다.' },
40
+ { name: '작품 내보내기', text: '정적 작품은 PNG로, 애니메이션은 GIF/WebP로 다운로드하세요. 완성된 글리치 아트를 SNS에 공유해 보세요!' },
41
+ { name: '카오스로 실험하기', text: '"카오스 랜덤" 버튼을 클릭하여 놀라운 효과 조합을 자동으로 발견해 보세요.' },
42
+ ];
43
+
44
+ const faqSchema: WithContext<FAQPage> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'FAQPage',
47
+ mainEntity: faq.map((item) => ({
48
+ '@type': 'Question',
49
+ name: item.question,
50
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
51
+ })),
52
+ };
53
+
54
+ const howToSchema: WithContext<HowTo> = {
55
+ '@context': 'https://schema.org',
56
+ '@type': 'HowTo',
57
+ name: title,
58
+ description,
59
+ step: howTo.map((step) => ({
60
+ '@type': 'HowToStep',
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilitiesApplication',
72
+ operatingSystem: 'Web',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
74
+ inLanguage: 'ko',
75
+ };
76
+
77
+ export const content: GlitchImageDistorterLocaleContent = {
78
+ slug,
79
+ title,
80
+ description,
81
+ faqTitle: '자주 묻는 질문',
82
+ ui: {
83
+ title: '글리치 디스토터',
84
+ description: '몇 초 만에 글리치 아트를 만드세요.',
85
+ dragDropText: '이미지를 여기로 드래그하거나 클릭하여 업로드',
86
+ pasteHint: '팁: Ctrl+V를 눌러 이미지를 붙여넣을 수도 있습니다',
87
+ exampleImageBtn: '샘플 이미지 사용',
88
+ corruptionLabel: '손상 (RGB 분리)',
89
+ interferenceLabel: '간섭 (스캔라인)',
90
+ tremorLabel: '떨림',
91
+ pixelSortLabel: '픽셀 정렬',
92
+ pixelSortDirectionLabel: '방향',
93
+ noiseLabel: '정적 노이즈',
94
+ animateBtn: '글리치 애니메이션',
95
+ chaosBtn: '카오스 랜덤',
96
+ downloadPngBtn: 'PNG 다운로드',
97
+ downloadGifBtn: 'GIF 다운로드',
98
+ undoBtn: '실행 취소',
99
+ redoBtn: '다시 실행',
100
+ footerText: '30초 만에 손상된 디지털 아트를 만드세요',
101
+ faqTitle: 'FAQ',
102
+ bibliographyTitle: '참고 문헌'
103
+ },
104
+ seo: [
105
+ { type: 'title', text: '글리치 아트란 무엇인가요?', level: 2 },
106
+ { type: 'paragraph', html: '<strong>글리치 아트</strong>는 디지털 오류, 손상된 데이터, 시각적 아티팩트를 의도적으로 활용하여 미적 결과를 만들어내는 창작 활동입니다. 완벽함을 추구하는 전통적인 예술과 달리, 글리치는 기술적 고장에서 비롯된 예상치 못한 아름다움, 즉 오류에서 태어난 파편화된 색상과 혼돈의 패턴을 긍정합니다.' },
107
+ { type: 'title', text: '기원과 디지털 미학', level: 3 },
108
+ { type: 'paragraph', html: '글리치 미학은 2000년대 초반 디지털 아티스트들이 손상된 이미지 파일과 하드웨어 오작동을 실험하면서 등장했습니다. <strong>로자 멘크만(Rosa Menkman)</strong>과 같은 아티스트들은 디지털 아티팩트의 시학을 연구함으로써 글리치 아트를 순수 예술의 반열에 올렸습니다. 이 미학은 VHS의 화질 저하, 전송 오류, 디지털 시스템의 가시화된 "노이즈"에서 영감을 얻습니다.' },
109
+ { type: 'title', text: '주요 글리치 기법', level: 3 },
110
+ { type: 'list', items: [
111
+ '<strong>RGB 분리:</strong> 빨강, 초록, 파랑 색상 채널을 어긋나게 하여 색수차를 만드는 기법.',
112
+ '<strong>스캔라인:</strong> 오래된 CRT 모니터의 수평선을 시뮬레이션하여 레트로한 느낌을 더하는 기법.',
113
+ '<strong>픽셀 정렬(Pixel Sorting):</strong> 픽셀을 밝기 등에 따라 정렬하고 이동시켜 "녹아내리는" 듯한 효과를 만드는 기법.',
114
+ '<strong>데이터 모싱(Data Moshing):</strong> 비디오 코덱 데이터를 조작하여 프레임을 예기치 않은 방식으로 섞는 기법.',
115
+ '<strong>비트 시프팅(Bit Shifting):</strong> 이진 데이터를 직접 수정하여 극적인 색상 및 형태 왜곡을 일으키는 기법.',
116
+ ]},
117
+ { type: 'tip', title: '글리치 뒤에 숨겨진 철학', html: '글리치 아트는 "완벽한" 디지털 재현이라는 관념에 도전합니다. 오류를 수용함으로써 우리는 기술의 신뢰성에 의문을 던지고 기술이 우리의 현실 인식을 어떻게 매개하는지 탐구합니다. 이는 시스템의 실패, 그리고 혼돈 속에 숨겨진 아름다움에 대한 예술입니다.' },
118
+ { type: 'title', text: '현대적 응용', level: 3 },
119
+ { type: 'paragraph', html: '오늘날 글리치 미학은 앨범 커버, 뮤직 비디오, 패션, 그래픽 디자인 등 어디에서나 볼 수 있습니다. 이 도구는 글리치 아트 제작을 대중화하여 깊은 기술적 지식 없이도 누구나 전문가 수준의 디지털 파괴 작품을 만들 수 있게 해줍니다.' },
120
+ { type: 'stats', items: [
121
+ { value: '2000년대', label: '글리치 아트의 등장', icon: 'mdi:history' },
122
+ { value: '∞', label: '무한한 글리치 조합', icon: 'mdi:shuffle-variant' },
123
+ { value: '<30초', label: '제작 시간', icon: 'mdi:flash' },
124
+ { value: '3+', label: '내보내기 형식', icon: 'mdi:download-multiple' },
125
+ ], columns: 4 },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
131
+ };