Topic: convertire pixel in cm e pollici  (Letto 2531 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline 70qwerty70

  • python unicellularis
  • *
  • Post: 9
  • Punti reputazione: 0
    • Mostra profilo
convertire pixel in cm e pollici
« il: Settembre 09, 2013, 23:25 »
salve a tutti
con questo codice ho provato  a creare un programma che convertisse i pixel in cm  e pollici
[codice]from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys

class NuovoFile(QDialog):
    def __init__(self):
        QDialog.__init__(self)

        box=QVBoxLayout()
        self.setLayout(box)

        lblLarg=QLabel("Larghezza:")
        self.lnLarg=QLineEdit()
        self.cmbLarg=QComboBox()
        self.cmbLarg.addItem("pixel")
        self.cmbLarg.addItem("cm")
        self.cmbLarg.addItem("pollici")

        lblAlt=QLabel("Altezza:")
        self.lnAlt=QLineEdit()
        self.cmbAlt=QComboBox()
        self.cmbAlt.addItem("pixel")
        self.cmbAlt.addItem("cm")
        self.cmbAlt.addItem("pollici")

        lblRis=QLabel("Risoluzione:")
        self.lnRis=QLineEdit()

        box.addWidget(lblLarg)
        box.addWidget(self.lnLarg)
        box.addWidget(self.cmbLarg)
        box.addWidget(lblAlt)
        box.addWidget(self.lnAlt)
        box.addWidget(self.cmbAlt)
        box.addWidget(lblRis)
        box.addWidget(self.lnRis)

        self.cmbLarg.currentIndexChanged.connect(self.converter)
        self.cmbAlt.currentIndexChanged.connect(lambda:self.cmbLarg.setCurrentIndex(
                                                self.cmbAlt.currentIndex()))

    def converter(self):
        self.cmbAlt.setCurrentIndex(self.cmbLarg.currentIndex())

        ris=float(self.lnRis.text())
        n1=float(self.lnLarg.text())
        n2=float(self.lnAlt.text())

        px=[n1,n2]
        cm1=float(px[0]/ris*2.54)
        cm2=float(px[1]/ris*2.54)

        px1=int(ris*2.54/px[0])
        px2=int(ris*2.54/px[1])

        inch1=float(cm1*2.54)
        inch2=float(cm2*2.54)
       
           
        if self.cmbAlt.currentIndex()==0:

            self.lnLarg.setText(str(round(px1,2)))
            self.lnAlt.setText(str(round(px2,2)))
                   
        elif self.cmbAlt.currentIndex()==1:

            self.lnLarg.setText(str(round(cm1,2)))
            self.lnAlt.setText(str(round(cm2,2)))

        elif self.cmbAlt.currentIndex()==2:

            self.lnLarg.setText(str(round(inch1,2)))
            self.lnAlt.setText(str(round(inch2,2)))

app=QApplication(sys.argv)
ex=NuovoFile()
ex.show()
sys.exit(app.exec_())
[/codice]

Purtroppo quando converto i pixel in pollici mi dà un valore errato, qualcuno mi può aiutare?

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: convertire pixel in cm e pollici
« Risposta #1 il: Settembre 09, 2013, 23:43 »
Mi sembra concettualmente errato. Come fai a convertire i pixel in pollici?

Offline 70qwerty70

  • python unicellularis
  • *
  • Post: 9
  • Punti reputazione: 0
    • Mostra profilo
Re: convertire pixel in cm e pollici
« Risposta #2 il: Settembre 10, 2013, 09:39 »
centimetri=(pixel*2,54)/risoluzione quindi pixel=(centimetri*risoluzione)/2.54 e 1cm=2.54 pollici

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: convertire pixel in cm e pollici
« Risposta #3 il: Settembre 13, 2013, 01:26 »
centimetri=(pixel*2,54)/risoluzione quindi pixel=(centimetri*risoluzione)/2.54 e 1cm=2.54 pollici


oh diamine, adesso ho visto da dove la prendi la risoluzione! mi aspettavo che fosse un parametro della funzione, non che avessi completamente mischiato la logica del calcolo con quella dell'input e dell'output...

secondo me se separi tutto per bene trovi l'errore rapidamente (e lo si puo' facilmente trovare pure noi senza entrare nella logica della funzione).