@jjlmoya/utils-audiovisual 1.16.0 → 1.18.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 +1 -1
- package/src/category/index.ts +2 -0
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/locale_completeness.test.ts +2 -36
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/chromaticLens/bibliography.ts +12 -0
- package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +39 -39
- package/src/tool/chromaticLens/entry.ts +2 -0
- package/src/tool/chromaticLens/i18n/de.ts +1 -15
- package/src/tool/chromaticLens/i18n/en.ts +1 -15
- package/src/tool/chromaticLens/i18n/es.ts +1 -13
- package/src/tool/chromaticLens/i18n/fr.ts +1 -13
- package/src/tool/chromaticLens/i18n/id.ts +1 -15
- package/src/tool/chromaticLens/i18n/it.ts +1 -15
- package/src/tool/chromaticLens/i18n/ja.ts +1 -15
- package/src/tool/chromaticLens/i18n/ko.ts +1 -15
- package/src/tool/chromaticLens/i18n/nl.ts +1 -15
- package/src/tool/chromaticLens/i18n/pl.ts +1 -15
- package/src/tool/chromaticLens/i18n/pt.ts +1 -15
- package/src/tool/chromaticLens/i18n/ru.ts +1 -15
- package/src/tool/chromaticLens/i18n/sv.ts +1 -15
- package/src/tool/chromaticLens/i18n/tr.ts +1 -15
- package/src/tool/chromaticLens/i18n/zh.ts +1 -15
- package/src/tool/chromaticLens/seo.astro +1 -1
- package/src/tool/collageMaker/bibliography.ts +8 -0
- package/src/tool/collageMaker/entry.ts +2 -0
- package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +47 -47
- package/src/tool/collageMaker/i18n/de.ts +1 -11
- package/src/tool/collageMaker/i18n/en.ts +1 -11
- package/src/tool/collageMaker/i18n/es.ts +1 -9
- package/src/tool/collageMaker/i18n/fr.ts +1 -9
- package/src/tool/collageMaker/i18n/id.ts +1 -11
- package/src/tool/collageMaker/i18n/it.ts +1 -11
- package/src/tool/collageMaker/i18n/ja.ts +1 -11
- package/src/tool/collageMaker/i18n/ko.ts +1 -11
- package/src/tool/collageMaker/i18n/nl.ts +1 -11
- package/src/tool/collageMaker/i18n/pl.ts +1 -11
- package/src/tool/collageMaker/i18n/pt.ts +1 -11
- package/src/tool/collageMaker/i18n/ru.ts +1 -11
- package/src/tool/collageMaker/i18n/sv.ts +1 -11
- package/src/tool/collageMaker/i18n/tr.ts +1 -11
- package/src/tool/collageMaker/i18n/zh.ts +1 -11
- package/src/tool/collageMaker/seo.astro +1 -1
- package/src/tool/depthOfFieldCalculator/bibliography.astro +15 -0
- package/src/tool/depthOfFieldCalculator/bibliography.ts +20 -0
- package/src/tool/depthOfFieldCalculator/component.astro +341 -0
- package/src/tool/depthOfFieldCalculator/depth-of-field-calculator.css +417 -0
- package/src/tool/depthOfFieldCalculator/entry.ts +52 -0
- package/src/tool/depthOfFieldCalculator/i18n/de.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/en.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/es.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/fr.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/id.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/it.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/ja.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/ko.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/nl.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/pl.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/pt.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/ru.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/sv.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/tr.ts +141 -0
- package/src/tool/depthOfFieldCalculator/i18n/zh.ts +141 -0
- package/src/tool/depthOfFieldCalculator/index.ts +10 -0
- package/src/tool/depthOfFieldCalculator/logic.ts +91 -0
- package/src/tool/depthOfFieldCalculator/seo.astro +15 -0
- package/src/tool/exifCleaner/bibliography.ts +12 -0
- package/src/tool/exifCleaner/entry.ts +2 -0
- package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +36 -36
- package/src/tool/exifCleaner/i18n/de.ts +1 -15
- package/src/tool/exifCleaner/i18n/en.ts +1 -15
- package/src/tool/exifCleaner/i18n/es.ts +1 -15
- package/src/tool/exifCleaner/i18n/fr.ts +1 -15
- package/src/tool/exifCleaner/i18n/id.ts +1 -15
- package/src/tool/exifCleaner/i18n/it.ts +1 -15
- package/src/tool/exifCleaner/i18n/ja.ts +1 -15
- package/src/tool/exifCleaner/i18n/ko.ts +1 -15
- package/src/tool/exifCleaner/i18n/nl.ts +1 -15
- package/src/tool/exifCleaner/i18n/pl.ts +1 -15
- package/src/tool/exifCleaner/i18n/pt.ts +1 -15
- package/src/tool/exifCleaner/i18n/ru.ts +1 -15
- package/src/tool/exifCleaner/i18n/sv.ts +1 -15
- package/src/tool/exifCleaner/i18n/tr.ts +1 -15
- package/src/tool/exifCleaner/i18n/zh.ts +1 -15
- package/src/tool/exifCleaner/seo.astro +2 -5
- package/src/tool/imageCompressor/bibliography.ts +12 -0
- package/src/tool/imageCompressor/entry.ts +2 -0
- package/src/tool/imageCompressor/i18n/de.ts +1 -15
- package/src/tool/imageCompressor/i18n/en.ts +1 -15
- package/src/tool/imageCompressor/i18n/es.ts +1 -13
- package/src/tool/imageCompressor/i18n/fr.ts +1 -13
- package/src/tool/imageCompressor/i18n/id.ts +1 -15
- package/src/tool/imageCompressor/i18n/it.ts +1 -15
- package/src/tool/imageCompressor/i18n/ja.ts +1 -15
- package/src/tool/imageCompressor/i18n/ko.ts +1 -15
- package/src/tool/imageCompressor/i18n/nl.ts +1 -15
- package/src/tool/imageCompressor/i18n/pl.ts +1 -15
- package/src/tool/imageCompressor/i18n/pt.ts +1 -15
- package/src/tool/imageCompressor/i18n/ru.ts +1 -15
- package/src/tool/imageCompressor/i18n/sv.ts +1 -15
- package/src/tool/imageCompressor/i18n/tr.ts +1 -15
- package/src/tool/imageCompressor/i18n/zh.ts +1 -15
- package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +71 -64
- package/src/tool/imageCompressor/seo.astro +1 -1
- package/src/tool/printQualityCalculator/bibliography.ts +12 -0
- package/src/tool/printQualityCalculator/entry.ts +2 -0
- package/src/tool/printQualityCalculator/i18n/de.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/en.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/es.ts +1 -13
- package/src/tool/printQualityCalculator/i18n/fr.ts +1 -13
- package/src/tool/printQualityCalculator/i18n/id.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/it.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/ja.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/ko.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/nl.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/pl.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/pt.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/ru.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/sv.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/tr.ts +1 -15
- package/src/tool/printQualityCalculator/i18n/zh.ts +1 -15
- package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +89 -81
- package/src/tool/printQualityCalculator/seo.astro +2 -5
- package/src/tool/privacyBlur/bibliography.ts +8 -0
- package/src/tool/privacyBlur/entry.ts +2 -0
- package/src/tool/privacyBlur/i18n/de.ts +1 -11
- package/src/tool/privacyBlur/i18n/en.ts +1 -11
- package/src/tool/privacyBlur/i18n/es.ts +1 -9
- package/src/tool/privacyBlur/i18n/fr.ts +1 -9
- package/src/tool/privacyBlur/i18n/id.ts +1 -11
- package/src/tool/privacyBlur/i18n/it.ts +1 -11
- package/src/tool/privacyBlur/i18n/ja.ts +1 -11
- package/src/tool/privacyBlur/i18n/ko.ts +1 -11
- package/src/tool/privacyBlur/i18n/nl.ts +1 -11
- package/src/tool/privacyBlur/i18n/pl.ts +1 -11
- package/src/tool/privacyBlur/i18n/pt.ts +1 -11
- package/src/tool/privacyBlur/i18n/ru.ts +1 -11
- package/src/tool/privacyBlur/i18n/sv.ts +1 -11
- package/src/tool/privacyBlur/i18n/tr.ts +1 -11
- package/src/tool/privacyBlur/i18n/zh.ts +1 -11
- package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +36 -36
- package/src/tool/privacyBlur/seo.astro +1 -1
- package/src/tool/subtitleSync/bibliography.ts +12 -0
- package/src/tool/subtitleSync/entry.ts +2 -0
- package/src/tool/subtitleSync/i18n/de.ts +1 -13
- package/src/tool/subtitleSync/i18n/en.ts +1 -13
- package/src/tool/subtitleSync/i18n/es.ts +1 -13
- package/src/tool/subtitleSync/i18n/fr.ts +1 -13
- package/src/tool/subtitleSync/i18n/id.ts +1 -13
- package/src/tool/subtitleSync/i18n/it.ts +1 -13
- package/src/tool/subtitleSync/i18n/ja.ts +1 -13
- package/src/tool/subtitleSync/i18n/ko.ts +1 -13
- package/src/tool/subtitleSync/i18n/nl.ts +1 -13
- package/src/tool/subtitleSync/i18n/pl.ts +1 -13
- package/src/tool/subtitleSync/i18n/pt.ts +1 -13
- package/src/tool/subtitleSync/i18n/ru.ts +1 -13
- package/src/tool/subtitleSync/i18n/sv.ts +1 -13
- package/src/tool/subtitleSync/i18n/tr.ts +1 -13
- package/src/tool/subtitleSync/i18n/zh.ts +1 -13
- package/src/tool/subtitleSync/seo.astro +1 -1
- package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +43 -43
- package/src/tool/timelapseCalculator/bibliography.ts +20 -0
- package/src/tool/timelapseCalculator/entry.ts +2 -0
- package/src/tool/timelapseCalculator/i18n/de.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/en.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/es.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/fr.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/id.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/it.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/ja.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/ko.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/nl.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/pl.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/pt.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/ru.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/sv.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/tr.ts +1 -21
- package/src/tool/timelapseCalculator/i18n/zh.ts +1 -21
- package/src/tool/timelapseCalculator/seo.astro +2 -5
- package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +44 -42
- package/src/tool/tvDistance/bibliography.ts +12 -0
- package/src/tool/tvDistance/entry.ts +2 -0
- package/src/tool/tvDistance/i18n/de.ts +1 -13
- package/src/tool/tvDistance/i18n/en.ts +1 -13
- package/src/tool/tvDistance/i18n/es.ts +1 -13
- package/src/tool/tvDistance/i18n/fr.ts +1 -13
- package/src/tool/tvDistance/i18n/id.ts +1 -13
- package/src/tool/tvDistance/i18n/it.ts +1 -13
- package/src/tool/tvDistance/i18n/ja.ts +1 -13
- package/src/tool/tvDistance/i18n/ko.ts +1 -13
- package/src/tool/tvDistance/i18n/nl.ts +1 -13
- package/src/tool/tvDistance/i18n/pl.ts +1 -13
- package/src/tool/tvDistance/i18n/pt.ts +1 -13
- package/src/tool/tvDistance/i18n/ru.ts +1 -13
- package/src/tool/tvDistance/i18n/sv.ts +1 -13
- package/src/tool/tvDistance/i18n/tr.ts +1 -13
- package/src/tool/tvDistance/i18n/zh.ts +1 -13
- package/src/tool/tvDistance/seo.astro +1 -1
- package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +56 -56
- package/src/tool/videoFrameExtractor/bibliography.ts +8 -0
- package/src/tool/videoFrameExtractor/entry.ts +2 -0
- package/src/tool/videoFrameExtractor/i18n/de.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/en.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/es.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -8
- package/src/tool/videoFrameExtractor/i18n/id.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/it.ts +1 -8
- package/src/tool/videoFrameExtractor/i18n/ja.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/ko.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/nl.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/pl.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/pt.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/ru.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/sv.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/tr.ts +1 -9
- package/src/tool/videoFrameExtractor/i18n/zh.ts +1 -9
- package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +55 -55
- package/src/tool/videoFrameExtractor/seo.astro +1 -1
- package/src/tools.ts +2 -0
- package/src/types.ts +0 -2
- package/src/tool/chromaticLens/style.css +0 -308
- package/src/tool/collageMaker/style.css +0 -386
- package/src/tool/exifCleaner/style.css +0 -289
- package/src/tool/imageCompressor/style.css +0 -503
- package/src/tool/printQualityCalculator/style.css +0 -491
- package/src/tool/privacyBlur/style.css +0 -332
- package/src/tool/subtitleSync/style.css +0 -325
- package/src/tool/timelapseCalculator/style.css +0 -285
- package/src/tool/tvDistance/style.css +0 -435
- package/src/tool/videoFrameExtractor/style.css +0 -426
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { DepthOfFieldUI, DepthOfFieldLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'calcolatore-profondita-di-campo';
|
|
6
|
+
const title = 'Calcolatore Profondità di Campo: DoF in Tempo Reale';
|
|
7
|
+
const description = 'Calcola profondità di campo, distanza iperfocale e limiti di messa a fuoco in tempo reale. Supporta tutti i sensori con precisione di 1/3 di stop.';
|
|
8
|
+
|
|
9
|
+
const ui: DepthOfFieldUI = {
|
|
10
|
+
title: 'Profondità di Campo',
|
|
11
|
+
paramsTitle: 'Parametri',
|
|
12
|
+
sensorLabel: 'Sensore Fotocamera',
|
|
13
|
+
moreLabel: 'Altri sensori…',
|
|
14
|
+
apertureLabel: 'Apertura',
|
|
15
|
+
focalLabel: 'Lunghezza Focale',
|
|
16
|
+
distanceLabel: 'Distanza Soggetto',
|
|
17
|
+
metersLabel: 'm',
|
|
18
|
+
feetLabel: 'ft',
|
|
19
|
+
resultsTitle: 'Risultati',
|
|
20
|
+
totalDofLabel: 'Profondità di Campo Totale',
|
|
21
|
+
infiniteLabel: 'Infinito',
|
|
22
|
+
nearLimitLabel: 'Limite Vicino',
|
|
23
|
+
farLimitLabel: 'Limite Lontano',
|
|
24
|
+
hyperfocalLabel: 'Iperfocale',
|
|
25
|
+
cocLabel: 'Circolo di Confusione',
|
|
26
|
+
cocUnit: 'mm',
|
|
27
|
+
showDetailsLabel: 'Mostra dettagli tecnici',
|
|
28
|
+
hideDetailsLabel: 'Nascondi dettagli tecnici',
|
|
29
|
+
errorBelowFocal: 'La distanza del soggetto deve essere maggiore della lunghezza focale.',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const faq: DepthOfFieldLocaleContent['faq'] = [
|
|
33
|
+
{
|
|
34
|
+
question: 'Cos\'è la profondità di campo?',
|
|
35
|
+
answer: 'La profondità di campo (DoF) è l\'intervallo di distanze in una scena che appare nitido nell\'immagine finale. È determinata da apertura, focale, distanza del soggetto e dimensione del sensore.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Cos\'è la distanza iperfocale?',
|
|
39
|
+
answer: 'La distanza iperfocale è la distanza di messa a fuoco più vicina alla quale gli oggetti all\'infinito sono ancora nitidi. Massimizza la profondità di campo per una data apertura e focale.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Perché un\'apertura maggiore riduce la DoF?',
|
|
43
|
+
answer: 'Un\'apertura più ampia raccoglie luce su un\'area maggiore dell\'obiettivo, aumentando la dimensione del circolo di confusione per i punti fuori fuoco, restringendo la zona di nitidezza.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'In che modo la dimensione del sensore influisce sulla DoF?',
|
|
47
|
+
answer: 'Sensori più grandi usano una soglia del circolo di confusione più ampia. Tuttavia, a parità di campo visivo, i sensori grandi producono una DoF minore perché richiedono focali più lunghe.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const howTo: DepthOfFieldLocaleContent['howTo'] = [
|
|
52
|
+
{
|
|
53
|
+
name: 'Seleziona il sensore della fotocamera',
|
|
54
|
+
text: 'Scegli il formato del sensore corrispondente al tuo corpo macchina. Questo imposta il circolo di confusione (CoC) per i calcoli.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Imposta apertura e focale',
|
|
58
|
+
text: 'Trascina per scegliere un diaframma con incrementi di 1/3 di stop. Il cursore della focale è logaritmico per una maggiore precisione sui grandangoli.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Imposta la distanza del soggetto',
|
|
62
|
+
text: 'Trascina il cursore sulla distanza tra fotocamera e soggetto. Passa da metri a piedi secondo necessità.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Leggi i risultati',
|
|
66
|
+
text: 'La barra di messa a fuoco visualizza la zona nitida. I limiti vicino e lontano mostrano i confini esatti della messa a fuoco accettabile.',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: DepthOfFieldLocaleContent['seo'] = [
|
|
71
|
+
{ type: 'title', text: 'Comprendere la Profondità di Campo in Fotografia e Cinema', level: 2 },
|
|
72
|
+
{ type: 'paragraph', html: 'La profondità di campo è uno degli strumenti creativi più potenti. Una <strong>ridotta profondità di campo</strong> isola i soggetti, mentre una <strong>grande profondità di campo</strong> mantiene nitido tutto il paesaggio. Questo calcolatore ti offre un controllo preciso.' },
|
|
73
|
+
|
|
74
|
+
{ type: 'title', text: 'Le tre variabili che controllano la DoF', level: 3 },
|
|
75
|
+
{ type: 'table', headers: ['Variabile', 'Aumento →', 'Effetto sulla DoF'], rows: [
|
|
76
|
+
['Apertura', 'f/1.4 → f/16', 'Apertura maggiore = DoF minore'],
|
|
77
|
+
['Lunghezza Focale', '24mm → 200mm', 'Focale maggiore = DoF minore a parità di distanza'],
|
|
78
|
+
['Distanza Soggetto', '1m → 10m', 'Soggetto più lontano = DoF maggiore'],
|
|
79
|
+
]},
|
|
80
|
+
|
|
81
|
+
{ type: 'title', text: 'La distanza iperfocale: massima nitidezza', level: 3 },
|
|
82
|
+
{ type: 'paragraph', html: 'Quando metti a fuoco alla <strong>distanza iperfocale</strong>, tutto, dalla metà di quella distanza all\'infinito, appare nitido. Tecnica essenziale per la fotografia di paesaggio.' },
|
|
83
|
+
{ type: 'tip', title: 'Consiglio pratico', html: 'Per la street photography, imposta il fuoco sull\'iperfocale. Con un 35mm su APS-C a f/8, l\'iperfocale è a circa <strong>4 metri</strong>: tutto da 2m all\'infinito sarà nitido.' },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Dimensione del sensore e circolo di confusione', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: 'Il <strong>circolo di confusione (CoC)</strong> definisce la nitidezza accettabile. Un sensore Full Frame ha un CoC di 0,030 mm; uno smartphone circa 0,006 mm. Valori CoC minori implicano criteri più severi.' },
|
|
87
|
+
{ type: 'stats', columns: 3, items: [
|
|
88
|
+
{ label: 'Full Frame', value: '0,030 mm', icon: 'mdi:camera' },
|
|
89
|
+
{ label: 'APS-C', value: '0,019 mm', icon: 'mdi:camera-outline' },
|
|
90
|
+
{ label: 'Smartphone', value: '0,006 mm', icon: 'mdi:cellphone' },
|
|
91
|
+
]},
|
|
92
|
+
|
|
93
|
+
{ type: 'title', text: 'DoF nel cinema: Focale vs Sensore', level: 3 },
|
|
94
|
+
{ type: 'paragraph', html: 'Riprendere in Super 35 (simile ad APS-C) spesso richiede focali più lunghe per comprimere la prospettiva, creando il classico "look cinematografico". Un 85mm luminoso è ideale per i ritratti.' },
|
|
95
|
+
{ type: 'diagnostic', variant: 'success', title: 'La regola di distribuzione del fuoco', icon: 'mdi:lightbulb-outline', badge: 'Tecnica Pro', html: 'Per un soggetto a 3m con un 50mm a f/2.8 : la zona nitida dietro il soggetto è sempre maggiore di quella davanti, con un <strong>rapporto di circa 2:1</strong>.' },
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'FAQPage',
|
|
101
|
+
mainEntity: faq.map((item) => ({
|
|
102
|
+
'@type': 'Question',
|
|
103
|
+
name: item.question,
|
|
104
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const howToSchema: WithContext<HowTo> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'HowTo',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
step: howTo.map((step) => ({
|
|
114
|
+
'@type': 'HowToStep',
|
|
115
|
+
name: step.name,
|
|
116
|
+
text: step.text,
|
|
117
|
+
})),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
121
|
+
'@context': 'https://schema.org',
|
|
122
|
+
'@type': 'SoftwareApplication',
|
|
123
|
+
name: title,
|
|
124
|
+
description,
|
|
125
|
+
applicationCategory: 'UtilitiesApplication',
|
|
126
|
+
operatingSystem: 'Web',
|
|
127
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
128
|
+
inLanguage: 'it',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const content: DepthOfFieldLocaleContent = {
|
|
132
|
+
slug,
|
|
133
|
+
title,
|
|
134
|
+
description,
|
|
135
|
+
ui,
|
|
136
|
+
seo,
|
|
137
|
+
faq,
|
|
138
|
+
bibliography,
|
|
139
|
+
howTo,
|
|
140
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
141
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { DepthOfFieldUI, DepthOfFieldLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'depth-of-field-calculator';
|
|
6
|
+
const title = '被写界深度計算機:あらゆるカメラに対応したリアルタイムDoF';
|
|
7
|
+
const description = '被写界深度、過焦点距離、フォーカス範囲をリアルタイムで計算。すべてのセンサーサイズに対応し、1/3段刻みの絞り精度を実現。';
|
|
8
|
+
|
|
9
|
+
const ui: DepthOfFieldUI = {
|
|
10
|
+
title: '被写界深度計算機',
|
|
11
|
+
paramsTitle: '設定パラメータ',
|
|
12
|
+
sensorLabel: 'カメラセンサー',
|
|
13
|
+
moreLabel: 'その他のセンサー…',
|
|
14
|
+
apertureLabel: '絞り値 (Aperture)',
|
|
15
|
+
focalLabel: '焦点距離 (Focal Length)',
|
|
16
|
+
distanceLabel: '被写体距離',
|
|
17
|
+
metersLabel: 'm',
|
|
18
|
+
feetLabel: 'ft',
|
|
19
|
+
resultsTitle: '計算結果',
|
|
20
|
+
totalDofLabel: '合計被写界深度',
|
|
21
|
+
infiniteLabel: '無限遠',
|
|
22
|
+
nearLimitLabel: '前方限界点',
|
|
23
|
+
farLimitLabel: '後方限界点',
|
|
24
|
+
hyperfocalLabel: '過焦点距離',
|
|
25
|
+
cocLabel: '許容錯乱円径 (CoC)',
|
|
26
|
+
cocUnit: 'mm',
|
|
27
|
+
showDetailsLabel: '詳細な技術仕様を表示',
|
|
28
|
+
hideDetailsLabel: '技術仕様を隠す',
|
|
29
|
+
errorBelowFocal: '被写体距離は焦点距離より大きく設定してください。',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const faq: DepthOfFieldLocaleContent['faq'] = [
|
|
33
|
+
{
|
|
34
|
+
question: '被写界深度とは何ですか?',
|
|
35
|
+
answer: '被写界深度(DoF)とは、写真の中でピントが合っているように見える前後の距離の範囲のことです。絞り、焦点距離、撮影距離、センサーサイズによって決まります。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: '過焦点距離とは何ですか?',
|
|
39
|
+
answer: '無限遠にある物体が許容できる鮮明さで写る、最も近いピント合わせ距離のことです。この距離にピントを合わせると、被写界深度を最大化できます。',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'なぜ絞りを開く(F値を小さくする)と被写界深度が浅くなるのですか?',
|
|
43
|
+
answer: '絞りを大きく開くとレンズの広い範囲から光が集まるため、ピント位置から外れた場所での錯乱円が大きくなり、鮮明に見える範囲(被写界深度)が狭まります。',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'センサーサイズは被写界深度にどう影響しますか?',
|
|
47
|
+
answer: '大型センサーは許容錯乱円のしきい値が大きいため、同じ画角で比較した場合、長い焦点距離が必要となるため、結果として被写界深度が浅くなります。',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const howTo: DepthOfFieldLocaleContent['howTo'] = [
|
|
52
|
+
{
|
|
53
|
+
name: 'カメラセンサーを選択する',
|
|
54
|
+
text: 'お使いのカメラに合ったセンサーフォーマットを選択してください。これにより、計算に使用される許容錯乱円(CoC)の値が設定されます。',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: '絞りと焦点距離を設定する',
|
|
58
|
+
text: '絞り値を1/3段刻みで選択します。焦点距離スライダーは対数スケールを採用しており、広角側の微調整がしやすくなっています。',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: '被写体距離を調整する',
|
|
62
|
+
text: 'カメラから主被写体までの距離を設定します。必要に応じてメートルとフィートを切り替えられます。',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: '結果を確認する',
|
|
66
|
+
text: 'フォーカスバーで被写体周辺の鮮明なゾーンを視覚的に確認できます。前方・後方限界点は具体的なピント範囲を示します。',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: DepthOfFieldLocaleContent['seo'] = [
|
|
71
|
+
{ type: 'title', text: '写真と映画における被写界深度の理解', level: 2 },
|
|
72
|
+
{ type: 'paragraph', html: '被写界深度は、フォトグラファーや映像作家にとって最も強力な表現ツールの一つです。<strong>浅い被写界深度</strong>で背景から被写体を際立たせ、<strong>深い被写界深度</strong>で広大な風景を隅々まで鮮明に写し出します。' },
|
|
73
|
+
|
|
74
|
+
{ type: 'title', text: '被写界深度を制御する3つの要素', level: 3 },
|
|
75
|
+
{ type: 'table', headers: ['要素', '変更内容 →', 'DoFへの影響'], rows: [
|
|
76
|
+
['絞り (Aperture)', 'f/1.4 → f/16', '絞りを開くほど被写界深度は浅くなる'],
|
|
77
|
+
['焦点距離', '24mm → 200mm', '焦点距離が長いほど、同一距離では浅くなる'],
|
|
78
|
+
['撮影距離', '1m → 10m', '被写体が遠いほど被写界深度は深くなる'],
|
|
79
|
+
]},
|
|
80
|
+
|
|
81
|
+
{ type: 'title', text: '過焦点距離:鮮明さを最大化する', level: 3 },
|
|
82
|
+
{ type: 'paragraph', html: '<strong>過焦点距離</strong>にピントを合わせると、その距離の半分から無限遠までが鮮明な範囲(被写界深度内)に収まります。風景写真で手前から奥までピントを合わせる際によく使われます。' },
|
|
83
|
+
{ type: 'tip', title: '実践的なヒント', html: 'ストリートスナップでは、フォーカスを過焦点距離に固定して撮影してみましょう。APS-C機の35mmレンズでf/8の場合、過焦点距離は約<strong>4メートル</strong>です。これにより、2mから無限遠までをピントの範囲に収められます。' },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'センサーサイズと許容錯乱円', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: '<strong>許容錯乱円 (CoC)</strong>とは、「鮮明である」と判定されるしきい値です。フルサイズ機では0.030mm、スマートフォンでは約0.006mmが基準となります。CoCの値が小さいほど、より厳格なシャープネスが求められます。' },
|
|
87
|
+
{ type: 'stats', columns: 3, items: [
|
|
88
|
+
{ label: 'フルサイズ', value: '0.030 mm', icon: 'mdi:camera' },
|
|
89
|
+
{ label: 'APS-C', value: '0.019 mm', icon: 'mdi:camera-outline' },
|
|
90
|
+
{ label: 'スマートフォン', value: '0.006 mm', icon: 'mdi:cellphone' },
|
|
91
|
+
]},
|
|
92
|
+
|
|
93
|
+
{ type: 'title', text: '映画制作におけるDoF:焦点距離 vs センサー', level: 3 },
|
|
94
|
+
{ type: 'paragraph', html: 'スーパー35(APS-Cに近いサイズ)で撮影する映像作家は、パースを圧縮して「映画的なルック」を作るために望遠レンズを多用します。明るい85mm単焦点レンズでのポートレート撮影は、その代表例です。' },
|
|
95
|
+
{ type: 'diagnostic', variant: 'success', title: 'ピント配分の法則', icon: 'mdi:lightbulb-outline', badge: 'プロのテクニック', html: 'フルサイズ機の50mm、f/2.8で3メートル先の被写体を撮る場合、ピントが合って見える範囲は被写体の前方より後方のほうが常に広く、その比率は概ね <strong>2:1</strong> になります。' },
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'FAQPage',
|
|
101
|
+
mainEntity: faq.map((item) => ({
|
|
102
|
+
'@type': 'Question',
|
|
103
|
+
name: item.question,
|
|
104
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const howToSchema: WithContext<HowTo> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'HowTo',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
step: howTo.map((step) => ({
|
|
114
|
+
'@type': 'HowToStep',
|
|
115
|
+
name: step.name,
|
|
116
|
+
text: step.text,
|
|
117
|
+
})),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
121
|
+
'@context': 'https://schema.org',
|
|
122
|
+
'@type': 'SoftwareApplication',
|
|
123
|
+
name: title,
|
|
124
|
+
description,
|
|
125
|
+
applicationCategory: 'UtilitiesApplication',
|
|
126
|
+
operatingSystem: 'Web',
|
|
127
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
128
|
+
inLanguage: 'ja',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const content: DepthOfFieldLocaleContent = {
|
|
132
|
+
slug,
|
|
133
|
+
title,
|
|
134
|
+
description,
|
|
135
|
+
ui,
|
|
136
|
+
seo,
|
|
137
|
+
faq,
|
|
138
|
+
bibliography,
|
|
139
|
+
howTo,
|
|
140
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
141
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { DepthOfFieldUI, DepthOfFieldLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'depth-of-field-calculator';
|
|
6
|
+
const title = '피사체 깊이 계산기: 모든 카메라를 위한 실시간 DoF 계산';
|
|
7
|
+
const description = '피사체 깊이, 과초점 거리, 초점 범위를 실시간으로 계산하세요. 모든 센서 크기를 지원하며 1/3 스탑 조리개 정밀도를 제공합니다.';
|
|
8
|
+
|
|
9
|
+
const ui: DepthOfFieldUI = {
|
|
10
|
+
title: '피사체 깊이 계산기',
|
|
11
|
+
paramsTitle: '설정 파라미터',
|
|
12
|
+
sensorLabel: '카메라 센서',
|
|
13
|
+
moreLabel: '기타 센서…',
|
|
14
|
+
apertureLabel: '조리개값 (Aperture)',
|
|
15
|
+
focalLabel: '초점 거리 (Focal Length)',
|
|
16
|
+
distanceLabel: '피사체 거리',
|
|
17
|
+
metersLabel: 'm',
|
|
18
|
+
feetLabel: 'ft',
|
|
19
|
+
resultsTitle: '계산 결과',
|
|
20
|
+
totalDofLabel: '전체 피사체 깊이',
|
|
21
|
+
infiniteLabel: '무한대',
|
|
22
|
+
nearLimitLabel: '전방 한계 지점',
|
|
23
|
+
farLimitLabel: '후방 한계 지점',
|
|
24
|
+
hyperfocalLabel: '과초점 거리',
|
|
25
|
+
cocLabel: '허용 착란원 (CoC)',
|
|
26
|
+
cocUnit: 'mm',
|
|
27
|
+
showDetailsLabel: '기술 세부 정보 표시',
|
|
28
|
+
hideDetailsLabel: '기술 세부 정보 숨기기',
|
|
29
|
+
errorBelowFocal: '피사체 거리는 초점 거리보다 커야 합니다.',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const faq: DepthOfFieldLocaleContent['faq'] = [
|
|
33
|
+
{
|
|
34
|
+
question: '피사체 깊이란 무엇인가요?',
|
|
35
|
+
answer: '피사체 깊이(DoF)는 사진에서 초점이 맞은 것으로 간주되는 전후방 거리의 범위를 말합니다. 조리개, 초점 거리, 촬영 거리, 센서 크기에 의해 결정됩니다.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: '과초점 거리란 무엇인가요?',
|
|
39
|
+
answer: '무한대에 있는 물체가 허용 가능한 선명도로 촬영되는 가장 가까운 초점 거리입니다. 이 거리에 초점을 맞추면 피사체 깊이를 극대화할 수 있습니다.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: '조리개를 수치가 작게 설정하면 왜 깊이가 얕아지나요?',
|
|
43
|
+
answer: '조리개를 크게 열면 렌즈의 넓은 영역을 통해 빛이 들어오며, 초점에서 벗어난 지점의 착란원이 커지게 되어 선명하게 보이는 범위가 좁아집니다.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: '센서 크기가 피사체 깊이에 어떤 영향을 주나요?',
|
|
47
|
+
answer: '대형 센서는 허용 착란원 임계값이 더 큽니다. 하지만 동일한 화각을 비교할 때 대형 센서는 더 긴 초점 거리가 필요하므로 결과적으로 더 얕은 깊이를 만듭니다.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const howTo: DepthOfFieldLocaleContent['howTo'] = [
|
|
52
|
+
{
|
|
53
|
+
name: '카메라 센서 선택',
|
|
54
|
+
text: '사용 중인 카메라 본체에 맞는 센서 포맷을 선택하세요. 이는 계산에 사용될 허용 착란원(CoC) 값을 결정합니다.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: '조리개 및 초점 거리 설정',
|
|
58
|
+
text: '1/3 스탑 단위로 조리개값을 선택하세요. 초점 거리 슬라이더는 로그 스케일을 사용하여 광각 영역에서 세밀한 조절이 가능합니다.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: '피사체 거리 조절',
|
|
62
|
+
text: '카메라와 주 피사체 사이의 거리를 설정하세요. 필요에 따라 미터와 피트 단위를 전환할 수 있습니다.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: '결과 확인',
|
|
66
|
+
text: '포커스 바를 통해 피사체 주변의 선명한 구역을 시각적으로 확인하세요. 전후방 한계점은 정확한 초점 범위를 보여줍니다.',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: DepthOfFieldLocaleContent['seo'] = [
|
|
71
|
+
{ type: 'title', text: '사진과 영상에서의 피사체 깊이 이해', level: 2 },
|
|
72
|
+
{ type: 'paragraph', html: '피사체 깊이는 사진가와 영상 작가에게 가장 강력한 창의적 도구 중 하나입니다. <strong>얕은 피사체 깊이</strong>는 피사체를 배경으로부터 분리시키며, <strong>깊은 피사체 깊이</strong>는 풍경 전체를 선명하게 유지합니다.' },
|
|
73
|
+
|
|
74
|
+
{ type: 'title', text: '피사체 깊이를 결정하는 세 가지 변수', level: 3 },
|
|
75
|
+
{ type: 'table', headers: ['변수', '변경 시 효과 →', '피사체 깊이에 미치는 영향'], rows: [
|
|
76
|
+
['조리개', 'f/1.4 → f/16', '조리개를 열수록 깊이가 얕아짐'],
|
|
77
|
+
['초점 거리', '24mm → 200mm', '초점 거리가 길수록 동일 거리에서 얕아짐'],
|
|
78
|
+
['피사체 거리', '1m → 10m', '피사체가 멀어질수록 깊이가 깊어짐'],
|
|
79
|
+
]},
|
|
80
|
+
|
|
81
|
+
{ type: 'title', text: '과초점 거리: 선명도의 극대화', level: 3 },
|
|
82
|
+
{ type: 'paragraph', html: '<strong>과초점 거리</strong>에 초점을 맞추면 해당 거리의 절반부터 무한대까지 모든 곳이 선명하게 표현됩니다. 풍경 사진에서 전경과 원경을 모두 살릴 때 주로 사용됩니다.' },
|
|
83
|
+
{ type: 'tip', title: '실전 팁', html: '스트릿 사진 촬영 시 초점을 과초점 거리에 고정해 보세요. APS-C 35mm 렌즈 f/8 설정 시 과초점 거리는 약 <strong>4미터</strong>입니다. 2m부터 무한대까지 모두 선명하게 촬영됩니다.' },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: '센서 크기와 허용 착란원', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: '<strong>허용 착란원 (CoC)</strong>은 "선명함"을 결정하는 임계값입니다. 풀프레임은 0.030mm, 스마트폰은 약 0.006mm를 기준으로 합니다. CoC 값이 작을수록 더 엄격한 선명도가 요구됩니다.' },
|
|
87
|
+
{ type: 'stats', columns: 3, items: [
|
|
88
|
+
{ label: '풀프레임', value: '0.030 mm', icon: 'mdi:camera' },
|
|
89
|
+
{ label: 'APS-C', value: '0.019 mm', icon: 'mdi:camera-outline' },
|
|
90
|
+
{ label: '스마트폰', value: '0.006 mm', icon: 'mdi:cellphone' },
|
|
91
|
+
]},
|
|
92
|
+
|
|
93
|
+
{ type: 'title', text: '시네마에서의 DoF: 초점 거리 vs 센서', level: 3 },
|
|
94
|
+
{ type: 'paragraph', html: '슈퍼 35(APS-C와 유사)로 촬영하는 작가들은 원근감을 압축하여 "시네마틱 룩"을 만들기 위해 망원 렌즈를 자주 사용합니다. 밝은 85mm 렌즈 촬영이 대표적인 예입니다.' },
|
|
95
|
+
{ type: 'diagnostic', variant: 'success', title: '초점 분포의 법칙', icon: 'mdi:lightbulb-outline', badge: '프로 테크닉', html: '풀프레임 50mm, f/2.8 설정으로 3미터 피사체를 촬영할 때, 피사체 뒷부분의 선명한 영역은 항상 앞부분보다 넓으며 그 비율은 대략 <strong>2:1</strong>이 됩니다.' },
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'FAQPage',
|
|
101
|
+
mainEntity: faq.map((item) => ({
|
|
102
|
+
'@type': 'Question',
|
|
103
|
+
name: item.question,
|
|
104
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const howToSchema: WithContext<HowTo> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'HowTo',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
step: howTo.map((step) => ({
|
|
114
|
+
'@type': 'HowToStep',
|
|
115
|
+
name: step.name,
|
|
116
|
+
text: step.text,
|
|
117
|
+
})),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
121
|
+
'@context': 'https://schema.org',
|
|
122
|
+
'@type': 'SoftwareApplication',
|
|
123
|
+
name: title,
|
|
124
|
+
description,
|
|
125
|
+
applicationCategory: 'UtilitiesApplication',
|
|
126
|
+
operatingSystem: 'Web',
|
|
127
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
128
|
+
inLanguage: 'ko',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const content: DepthOfFieldLocaleContent = {
|
|
132
|
+
slug,
|
|
133
|
+
title,
|
|
134
|
+
description,
|
|
135
|
+
ui,
|
|
136
|
+
seo,
|
|
137
|
+
faq,
|
|
138
|
+
bibliography,
|
|
139
|
+
howTo,
|
|
140
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
141
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { DepthOfFieldUI, DepthOfFieldLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'scherptediepte-calculator';
|
|
6
|
+
const title = 'Scherptediepte Calculator: Realtime DoF voor elke camera';
|
|
7
|
+
const description = 'Bereken scherptediepte, hyperfocale afstand en focuslimieten in realtime. Ondersteunt alle sensorgroottes met 1/3 stop diafragmaprecisie.';
|
|
8
|
+
|
|
9
|
+
const ui: DepthOfFieldUI = {
|
|
10
|
+
title: 'Scherptediepte Calculator',
|
|
11
|
+
paramsTitle: 'Parameters',
|
|
12
|
+
sensorLabel: 'Camerasensor',
|
|
13
|
+
moreLabel: 'Meer sensoren…',
|
|
14
|
+
apertureLabel: 'Diafragma',
|
|
15
|
+
focalLabel: 'Brandpuntsafstand',
|
|
16
|
+
distanceLabel: 'Afstand tot onderwerp',
|
|
17
|
+
metersLabel: 'm',
|
|
18
|
+
feetLabel: 'ft',
|
|
19
|
+
resultsTitle: 'Resultaten',
|
|
20
|
+
totalDofLabel: 'Totale scherptediepte',
|
|
21
|
+
infiniteLabel: 'Oneindig',
|
|
22
|
+
nearLimitLabel: 'Nabijheidspunten',
|
|
23
|
+
farLimitLabel: 'Vertepunt',
|
|
24
|
+
hyperfocalLabel: 'Hyperfocaal',
|
|
25
|
+
cocLabel: 'Verstrooiingscirkel',
|
|
26
|
+
cocUnit: 'mm',
|
|
27
|
+
showDetailsLabel: 'Toon technische details',
|
|
28
|
+
hideDetailsLabel: 'Verberg technische details',
|
|
29
|
+
errorBelowFocal: 'Afstand tot onderwerp moet groter zijn dan de brandpuntsafstand.',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const faq: DepthOfFieldLocaleContent['faq'] = [
|
|
33
|
+
{
|
|
34
|
+
question: 'Wat is scherptediepte?',
|
|
35
|
+
answer: 'Scherptediepte (DoF) is het afstandsbereik in een scène dat acceptabel scherp verschijnt in de uiteindelijke foto. Het wordt bepaald door diafragma, brandpuntsafstand, afstand tot het onderwerp en sensorgrootte.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Wat is de hyperfocale afstand?',
|
|
39
|
+
answer: 'De hyperfocale afstand is de kortste scherpstelafstand waarbij objecten op oneindig nog acceptabel scherp zijn. Scherpstellen op deze afstand maximaliseert de scherptediepte.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Waarom vermindert een groter diafragma de scherptediepte?',
|
|
43
|
+
answer: 'Een groter diafragma laat licht door een groter oppervlak van de lens, wat de verstrooiingscirkel voor onscherpe punten vergroot. Dit vernauwt de zone van acceptabele scherpte.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'Hoe beïnvloedt sensorgrootte de scherptediepte?',
|
|
47
|
+
answer: 'Grotere sensoren gebruiken een grotere drempel voor de verstrooiingscirkel. Echter, bij vergelijkbare beeldhoeken produceren grotere sensoren vaak minder scherptediepte omdat ze langere brandpuntsafstanden vereisen.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const howTo: DepthOfFieldLocaleContent['howTo'] = [
|
|
52
|
+
{
|
|
53
|
+
name: 'Selecteer je camerasensor',
|
|
54
|
+
text: 'Kies het sensorformaat van je camera. Dit stelt de waarde van de verstrooiingscirkel (CoC) in voor de berekeningen.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Stel diafragma en brandpuntsafstand in',
|
|
58
|
+
text: 'Kies een diafragma in stappen van 1/3 stop. De brandpuntsafstand-schuifregelaar is logaritmisch voor meer precisie bij groothoekinstellingen.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Stel de afstand tot het onderwerp in',
|
|
62
|
+
text: 'Stel de afstand tussen de camera en het hoofdonderwerp in. Wissel tussen meters en feet indien nodig.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Lees de resultaten af',
|
|
66
|
+
text: 'De focusbalk visualiseert de scherpe zone. De nabijheids- en vertepunten tonen de exacte grenzen van de scherpte.',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const seo: DepthOfFieldLocaleContent['seo'] = [
|
|
71
|
+
{ type: 'title', text: 'Scherptediepte begrijpen in fotografie en film', level: 2 },
|
|
72
|
+
{ type: 'paragraph', html: 'Scherptediepte is een van de krachtigste creatieve middelen. Een <strong>kleine scherptediepte</strong> isoleert onderwerpen, terwijl een <strong>grote scherptediepte</strong> een landschap scherp houdt. Deze calculator geeft je de volledige controle.' },
|
|
73
|
+
|
|
74
|
+
{ type: 'title', text: 'De drie variabelen van scherptediepte', level: 3 },
|
|
75
|
+
{ type: 'table', headers: ['Variabele', 'Toename →', 'Effect op DoF'], rows: [
|
|
76
|
+
['Diafragma', 'f/1.4 → f/16', 'Groter diafragma = minder scherptediepte'],
|
|
77
|
+
['Brandpuntsafstand', '24mm → 200mm', 'Langere brandpuntsafstand = minder scherptediepte'],
|
|
78
|
+
['Afstand', '1m → 10m', 'Grotere afstand = meer scherptediepte'],
|
|
79
|
+
]},
|
|
80
|
+
|
|
81
|
+
{ type: 'title', text: 'De hyperfocale afstand: Maximale scherpte', level: 3 },
|
|
82
|
+
{ type: 'paragraph', html: 'Wanneer je scherpstelt op de <strong>hyperfocale afstand</strong>, is alles van de helft van die afstand tot oneindig scherp. Ideaal voor landschapsfotografie.' },
|
|
83
|
+
{ type: 'tip', title: 'Praktische tip', html: 'Stel bij straatfotografie je focus in op de hyperfocale afstand. Met een 35mm lens op APS-C bij f/8 is dit ca. <strong>4 meter</strong>: alles van 2m tot oneindig wordt scherp.' },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Sensorgrootte en verstrooiingscirkel', level: 3 },
|
|
86
|
+
{ type: 'paragraph', html: 'De <strong>verstrooiingscirkel (CoC)</strong> definieert acceptabele scherpte. Een full-frame sensor heeft een CoC van 0,030 mm; een smartphone ca. 0,006 mm. Kleinere CoC-waarden betekenen strengere scherptecriteria.' },
|
|
87
|
+
{ type: 'stats', columns: 3, items: [
|
|
88
|
+
{ label: 'Full Frame', value: '0,030 mm', icon: 'mdi:camera' },
|
|
89
|
+
{ label: 'APS-C', value: '0,019 mm', icon: 'mdi:camera-outline' },
|
|
90
|
+
{ label: 'Smartphone', value: '0,006 mm', icon: 'mdi:cellphone' },
|
|
91
|
+
]},
|
|
92
|
+
|
|
93
|
+
{ type: 'title', text: 'DoF in film: Brandpuntsafstand vs. Sensor', level: 3 },
|
|
94
|
+
{ type: 'paragraph', html: 'Filmen op Super 35 gebruikt vaak langere brandpuntsafstanden voor de "cinematic look". Een lichtsterke 85mm lens bij portretopnames is een klassieke keuze.' },
|
|
95
|
+
{ type: 'diagnostic', variant: 'success', title: 'De focusverdelingsregel', icon: 'mdi:lightbulb-outline', badge: 'Pro-techniek', html: 'Voor een onderwerp op 3m met 50mm bij f/2.8: het scherptegebied achter het onderwerp is altijd groter dan ervoor – ongeveer in een <strong>verhouding van 2:1</strong>.' },
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'FAQPage',
|
|
101
|
+
mainEntity: faq.map((item) => ({
|
|
102
|
+
'@type': 'Question',
|
|
103
|
+
name: item.question,
|
|
104
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const howToSchema: WithContext<HowTo> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'HowTo',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
step: howTo.map((step) => ({
|
|
114
|
+
'@type': 'HowToStep',
|
|
115
|
+
name: step.name,
|
|
116
|
+
text: step.text,
|
|
117
|
+
})),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
121
|
+
'@context': 'https://schema.org',
|
|
122
|
+
'@type': 'SoftwareApplication',
|
|
123
|
+
name: title,
|
|
124
|
+
description,
|
|
125
|
+
applicationCategory: 'UtilitiesApplication',
|
|
126
|
+
operatingSystem: 'Web',
|
|
127
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
128
|
+
inLanguage: 'nl',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const content: DepthOfFieldLocaleContent = {
|
|
132
|
+
slug,
|
|
133
|
+
title,
|
|
134
|
+
description,
|
|
135
|
+
ui,
|
|
136
|
+
seo,
|
|
137
|
+
faq,
|
|
138
|
+
bibliography,
|
|
139
|
+
howTo,
|
|
140
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
141
|
+
};
|