[PHP] Convertire lunghezza di focale

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Ho questo codice in WordPress, lo devo modificare in modo che mi dia automaticamente la conversione, devo fare in modo che la lunghezza di focale di un obiettivo fotografico venga convertita come fosse quella di un sensore full frame (35 mm).

Mi spiego meglio: prendiamo una Canon 70D che ha un fattore di conversione di 1.6x, quindi se io faccio una foto con questa macchina mi da una lunghezza di focale a 97mm che convertita nel formato 35mm sarebbe 155,2 mm

Codice:
function change_focal_length($content) {
    if (isset($content['focal_length']))
        $content['focal_length'] = '35mm';

    return $content;
}
add_filter('exifography_display_exif','change_focal_length');

Questi sono tutti i fattori di conversione, nel tuo esempio ne puoi usare qualcuno, poi il resto li inserisco io.

In pratica al posto di quel "35mm" va messo un codice che quando estrapola i dati EXIF dalla fotocamera ne effettua la conversione in base al sensore che monta.

Questo è il plugin: https://wordpress.org/plugins/thesography/

Codice:
FATTORI DI CONVERSIONE
Largo formato
4x5”= 0.27x
5x7”= 0.20x
8x10”= 0.13x
11x14”= 0.10x

Medio formato
645D = 0.79x
645 = 0.62x
6x6 = 0.55x
6x7 = 0.47x
6x9 = 0.43x
6x12 = 0.35x

DSLRs / mirrorless
Full frame 35mm = 1x
APS-H  (Canon) = 1.26x
DX (Nikon) = 1.52x
APS-C  general (Nikon-Sony-Pentax) = 1.52x
APS-C  (Canon) = 1.62x
APS-C  (Sigma) = 1.7x
4/3” = 2x
CX (Nikon) = 2.7x

Camere compatte
1.5” = 1.85x
1” = 2.71x
2/3” = 3.93x
1/1.6” = 4.41x
1/1.7” = 4.55x
1/1.8” = 4.8x
1/2 = 5.41x
1/2.3” = 5.58x
1/2.4” = 5.74x
1/2.5” = 5.97x
1/2.7” = 6.41x
1/3” = 7.21x
1/3.2” = 7.62x
1/3.6” = 8.65x
1/4” = 9.61x
1/6” = 16x
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Questi sono tutti i fattori di conversione, nel tuo esempio ne puoi usare qualcuno, poi il resto li inserisco io.

In pratica al posto di quel "35mm" va messo un codice che quando estrapola i dati EXIF dalla fotocamera ne effettua la conversione in base al sensore che monta.
Forse ti sei dimenticato di citare il contenuto di "content", ok è tipo array, ma quali sono gli elementi su cui lavorare?
un buffer, una stringa, array multidimensionali ibridi....
PHP:
$content['focal_length']
cosa contiene?
 

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Quel codice in php me l'ha dato l'autore, mi ha detto che va modificato, ma non mi ha detto come.

Questo invece, è la parte originale che c'è nel file del plugin, in pratica estrapola i dati EXIF dalla camera e li mette a video

Codice:
...
elseif ($key == 'focal_length' && !$imgmeta['image_meta'][$key] == 0)
                        $exif = $imgmeta['image_meta'][$key] . __('mm','exifography');
...
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.407
339
83
@Shyson
Quando posti codice PHP devi usare il tag:
PHP 2.png
non il tag:
Code2.png

Grazie
 

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Intendi dire cosa stampa?

Questo viene stampato dal codice originale, come vedi la Lunghezza focale originale è 97mm per il sensore ridotto che monta questa macchina. In realtà però se questo obiettivo fosse montato su una Full frame 35mm l'obbiettivo equivalente sarebbe 157,14 (97x1.62 che è il fattore di conversione).

Quello che intendo fare è modificare il codice in modo che mi stampa la Lunghezza di focale come fosse montata su una Full frame (157.14mm).
Schermata 2019-10-06 alle 20.46.46.png
 

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Non sono molto ferrato, fammi un esempio della mia variabile con Print che la provo.
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
PHP:
function change_focal_length($content) {
   
print_r($content);die;
//o in alternativa
//dd($content);
if (isset($content['focal_length']))
       $content['focal_length'] = '35mm';

   return $content;
}
add_filter('exifography_display_exif','change_focal_length');
 

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Questo:

PHP:
Array ( [created_timestamp] =>
Data: 22 Agosto 2016, 07:40
[camera] =>
Camera: Canon EOS 70D
[focal_length] =>
Lunghezza focale (35mm): 97mm
[aperture] =>
Apertura: ƒ/4
[shutter_speed] =>
Velocità otturatore: 1/500s
[iso] =>
ISO: 200
[flash] =>
Flash attivato: no
)
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
In pratica al posto di quel "35mm" va messo un codice che quando estrapola i dati EXIF dalla fotocamera ne effettua la conversione in base al sensore che monta
Non trovo da nessuna parte la mappatura che hai postato...
FATTORI DI CONVERSIONE Largo formato 4x5”= 0.27x 5x7”= 0.20x 8x10”= 0.13x 11x14”= 0.10x Medio formato 645D = 0.79x 645 = 0.62x 6x6 = 0.55x 6x7 = 0.47x 6x9 = 0.43x
Come fai a convertire focal_length se manca/non trovo la base del calcolo... Al massimo una proporzione?
Posta qualche risultato di una fotocamera che non abbia focal 35mm....
 

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Il codice che ha stampato print è simile a questo che si trova in un altro file del plugin:
PHP:
    $this->fields = array(
                'aperture' => __('Aperture', 'exifography'),
                'credit' => __('Credit', 'exifography'),
                'camera' => __('Camera', 'exifography'),
                'caption' => __('Caption', 'exifography'),
                'created_timestamp' => __('Taken', 'exifography'),
                'copyright' => __('Copyright', 'exifography'),
                'exposure_bias' => __('Exposure bias', 'exifography'),
                'flash' => __('Flash fired', 'exifography'),
                'focal_length' => __('Focal length', 'exifography'),
                'iso' => __('ISO', 'exifography'),
                //'lens' => __('Lens', 'exifography'),
                'keywords' => __('Keywords', 'exifography'),
                'location' => __('Location', 'exifography'),
                'shutter_speed' => __('Shutter speed', 'exifography'),
                'title' => __('Title', 'exifography'),
            );

Questa foto è fatta con una full frame e l'obiettivo mostrato è 16mm reale
Questo è il fattore di conversione per una full frame: 1x
Schermata 2019-10-07 alle 10.06.35.png
 
Ultima modifica:

Shyson

Utente Attivo
19 Ago 2012
1.172
1
38
Ho trovato una cosa del genere, ma non converte la focale

PHP:
function convert($focal_length, $model) {
    $factor = 1.0;

    if ($model == "4x5''") {
        $factor = 0.27;
    }
    elseif ($model == "5x7''") {
        $factor = 0.20;
    }
    elseif ($model == "1/6''") {
       $factor = 16;
    }

    return (floatval($focal_length) * $factor) . "mm";
}

// Example
echo convert("97mm", "APS-C  (Canon)");  // Shows: "157.14mm"
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Convertire Excel in PHP PHP 1
S [PHP] Convertire un orario in un numero decimale PHP 2
L [PHP] convertire gli url ad forma semplice PHP 3
G [PHP] Oracle, convertire una query multiline in Json PHP 3
L [PHP] Drupal convertire sito dinamico. CMS (Content Management System) 1
G [PHP] convertire data in formato italiano dopo query PHP 6
M [PHP] Convertire date da americana a italiana direttamente nel db PHP 6
L [PHP] Convertire web codeigniter in App PHP 0
alexbrasile PHP convertire la funzione fsockopen in curl PHP 0
T [PHP] Convertire Codice JAVA a PHP PHP 3
M [PHP] Come convertire data in formato testo PHP 4
A convertire php in apk Smartphone e tablet 0
D Convertire una stringa html in php PHP 5
U php-mysql script per convertire valori $_POST PHP 2
O Convertire sito php procedural in php object oriented PHP 4
A Convertire pagina php in .doc PHP 6
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11

Discussioni simili