Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: ΑΠΕΙΚΟΝΙΣΗ EIKONAΣ ΑΠΟΘΗΚΕΥΜΕΝΗΣ ΩΣ PDF

ΑΠΕΙΚΟΝΙΣΗ EIKONAΣ ΑΠΟΘΗΚΕΥΜΕΝΗΣ ΩΣ PDF 10 Χρόνια 11 Μήνες πριν #1940

  • nnye
  • Το Άβαταρ του/της nnye
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 1
Καλησπέρα,
αναζητούσα να βρω τρόπους με τους οποίους μπορώ να απεικονίσω εικόνα αποθηκευμένη ως pdf με τη χρήση της βιβλιοθήκης matplotlib.

O κώδικας μου
¨%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
import matplotlib
matplotlib.use('PDF')
import matplotlib.image as mpimg
from matplotlib import pyplot as plt


if __name__=="__main__":
x=[1,2,4,7]
y=[3,4,5,6]
plt.figure(1)
plt.plot(x,y)
plt.savefig('temp.pdf',format='pdf')

και το σφάλμα: ΙΟerror: cannot identify image file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Οποιαδήποτε βοήθεια ευπρόσδεκτη. Αντε για να δείξουμε και στους αμερικανούς ότι και οι έλληνες είναι ικανοί για python.

Ευχαριστώ,
Νίκος
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

ΑΠΕΙΚΟΝΙΣΗ EIKONAΣ ΑΠΟΘΗΚΕΥΜΕΝΗΣ ΩΣ PDF 10 Χρόνια 9 Μήνες πριν #2095

  • STRATOS
  • Το Άβαταρ του/της STRATOS
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 34
  • Ληφθείσες Ευχαριστίες 5
Εγκατέστησε φίλε μου τον wxpython 2.8 στον υπολογιστή σου αρχικά, για να έχεις και interface και επιπλέον εγώ δουλεύω σε OS Windows XP,με Python 2.7. Ο παρακάτω κωδικας είναι η απάντηση σου, εντος ενός pdf αρχείου υπάρχει μια εικόνα επιλέγεις το pdf και σου εμφανίζει την εικόνα και σου την έχει κάνει convert σε jpeg,ανάλογα σε πιό dir σου π.χ Επιφάνεια Εργασίας τρέχει το script θα σου εμφανιστεί και to image του pdf
import os
import wx
import sys
 
class PhotoCtrl(wx.App):
    def __init__(self, redirect=False, filename=None):
        wx.App.__init__(self, redirect, filename)
        self.frame = wx.Frame(None, title='Photo Control')
 
        self.panel = wx.Panel(self.frame)
 
 
 
        self.PhotoMaxSize = 240
 
        self.createWidgets()
        self.frame.Show()
 
 
    def onClose(self, event):
        """"""
        self.frame.Close()   
 
    def createWidgets(self):
        instructions = 'Browse for an image'
        img = wx.EmptyImage(240,240)
        self.imageCtrl = wx.StaticBitmap(self.panel, wx.ID_ANY, 
                                         wx.BitmapFromImage(img))
 
        instructLbl = wx.StaticText(self.panel, label=instructions)
        self.photoTxt = wx.TextCtrl(self.panel, size=(200,-1))
        browseBtn = wx.Button(self.panel, label='Browse')
        browseBtn.Bind(wx.EVT_BUTTON, self.onBrowse)
 
        closeBtn = wx.Button(self.panel, label="Close")
        closeBtn.Bind(wx.EVT_BUTTON, self.onClose)
 
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer = wx.BoxSizer(wx.HORIZONTAL)
 
        self.mainSizer.Add(wx.StaticLine(self.panel, wx.ID_ANY),
                           0, wx.ALL|wx.EXPAND, 5)
        self.mainSizer.Add(instructLbl, 0, wx.ALL, 5)
        self.mainSizer.Add(self.imageCtrl, 0, wx.ALL, 5)
        self.sizer.Add(self.photoTxt, 0, wx.ALL, 5)
        self.sizer.Add(browseBtn, 0, wx.ALL, 5)
        self.sizer.Add(closeBtn, 0, wx.ALL, 5)
        self.mainSizer.Add(self.sizer, 0, wx.ALL, 5)
 
        self.panel.SetSizer(self.mainSizer)
        self.mainSizer.Fit(self.frame)
 
        self.panel.Layout()
 
    def onBrowse(self, event):
        """ 
        Browse for file
        """
        wildcard = "PDF files (*.pdf)|*.pdf"
        dialog = wx.FileDialog(None, "Choose a file",
                               wildcard=wildcard,
                               style=wx.OPEN)
        if dialog.ShowModal() == wx.ID_OK:
 
            pdf = file(dialog.GetPath(), "rb").read()
 
            startmark = "\xff\xd8"
            startfix = 0
            endmark = "\xff\xd9"
            endfix = 2
            i = 0
 
        njpg = 0
        while True:
            istream = pdf.find("stream", i)
            if istream < 0:
                break
            istart = pdf.find(startmark, istream, istream+20)
            if istart < 0:
                i = istream+20
                continue
            iend = pdf.find("endstream", istart)
            if iend < 0:
                raise Exception("Didn't find end of stream!")
            iend = pdf.find(endmark, iend-20)
            if iend < 0:
                raise Exception("Didn't find end of JPG!")
 
            istart += startfix
            iend += endfix
            jpg = pdf[istart:iend]
            jpgfile = file("jpg%d.jpg" % njpg, "wb")
            jpgfile.write(jpg)
            jpgfile.close()
 
 
 
            njpg += 1
            i = iend            
            pathname = os.path.dirname(sys.argv[0])
            pathnamefinal=pathname+"/"+"jpg"+str(njpg-1)+".jpg"
 
 
 
 
            self.photoTxt.SetValue(dialog.GetPath())
 
        dialog.Destroy()
        self.onView(pathnamefinal)
 
    def onView(self,a):
        filepath = a
        img = wx.Image(filepath, wx.BITMAP_TYPE_ANY)
        # scale the image, preserving the aspect ratio
        W = img.GetWidth()
        H = img.GetHeight()
        if W > H:
            NewW = self.PhotoMaxSize
            NewH = self.PhotoMaxSize * H / W
        else:
            NewH = self.PhotoMaxSize
            NewW = self.PhotoMaxSize * W / H
        img = img.Scale(NewW,NewH)
 
        self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
        self.panel.Refresh()
 
 
 
 
 
if __name__ == '__main__':
    app = PhotoCtrl()
    app.MainLoop()
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.561 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου