Added "Split left and right pages" option

Also cleaned formatting according to Eclipse PyDev
This commit is contained in:
Jan 2013-10-17 12:42:42 +11:00
parent 9c065b50ef
commit 1b2c5308eb
10 changed files with 86 additions and 48 deletions

View File

@ -17,7 +17,9 @@
import sys
from PyQt4 import QtGui
from mangle.book import MainWindowBook

View File

@ -14,10 +14,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os.path
import util
from PyQt4 import QtGui, uic
import util
class DialogAbout(QtGui.QDialog):
def __init__(self, parent):

View File

@ -14,19 +14,20 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
import os.path
from os.path import basename
import util
import os.path
import tempfile
from PyQt4 import QtGui, QtCore, QtXml, uic
from zipfile import ZipFile
from image import ImageFlags
from about import DialogAbout
from options import DialogOptions
from convert import DialogConvert
from PyQt4 import QtGui, QtCore, QtXml, uic
from natsort import natsorted
from about import DialogAbout
from convert import DialogConvert
from image import ImageFlags
from options import DialogOptions
import util
class Book(object):
DefaultDevice = 'Kindle Paperwhite'
@ -378,7 +379,7 @@ class MainWindowBook(QtGui.QMainWindow):
filenames = []
for directory in directories:
for root, subdirs, subfiles in os.walk(unicode(directory)):
for root, _, subfiles in os.walk(unicode(directory)):
for filename in subfiles:
path = os.path.join(root, filename)
if self.isImageFile(path):
@ -407,11 +408,10 @@ class MainWindowBook(QtGui.QMainWindow):
pass # the dir exists so we are going to extract the images only.
else:
cbzFile.extract(f, path)
#Add the directories
if os.path.isdir(unicode(path)):
if os.path.isdir(unicode(path)): # Add the directories
directories.append(path)
#Add the files
self.addImageDirs(directories)
self.addImageDirs(directories) # Add the files
def isImageFile(self, filename):

View File

@ -14,10 +14,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os, shutil
import os
import shutil
from PyQt4 import QtGui, QtCore
import image
import cbz
import image
import pdfimage

View File

@ -14,6 +14,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
from PIL import Image, ImageDraw
@ -23,6 +25,8 @@ class ImageFlags:
Frame = 1 << 2
Quantize = 1 << 3
Stretch = 1 << 4
Split = 1 << 5
SplitRight = 1 << 6
class KindleData:
@ -81,6 +85,18 @@ class KindleData:
}
def splitLeft(image):
widthImg, heightImg = image.size
return image.crop((0, 0, widthImg / 2, heightImg))
def splitRight(image):
widthImg, heightImg = image.size
return image.crop((widthImg / 2, 0, widthImg, heightImg))
def quantizeImage(image, palette):
colors = len(palette) / 3
if colors < 256:
@ -176,6 +192,15 @@ def convertImage(source, target, device, flags):
image = formatImage(image)
if flags & ImageFlags.Orient:
image = orientImage(image, size)
if flags & ImageFlags.SplitRight:
image = splitRight(image)
elif flags & ImageFlags.Split:
image = splitLeft(image)
# Recurse for right page
fileName, fileExtension = os.path.splitext(target)
newTarget = fileName + "r" + fileExtension
print(newTarget)
convertImage(source, newTarget, device, flags | ImageFlags.SplitRight)
if flags & ImageFlags.Resize:
image = resizeImage(image, size)
if flags & ImageFlags.Stretch:

View File

@ -14,10 +14,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os.path
import util
from PyQt4 import QtGui, QtCore, uic
from PyQt4 import QtGui, uic
from image import ImageFlags
import util
class DialogOptions(QtGui.QDialog):
@ -64,6 +64,8 @@ class DialogOptions(QtGui.QDialog):
imageFlags |= ImageFlags.Quantize
if self.checkboxFrame.isChecked():
imageFlags |= ImageFlags.Frame
if self.checkboxSplit.isChecked():
imageFlags |= ImageFlags.Split
modified = (
self.book.title != title or

View File

@ -17,9 +17,10 @@
import os.path
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from image import KindleData
class PDFImage(object):
def __init__(self, path, title, device):
outputDirectory = os.path.dirname(path)

View File

@ -158,6 +158,13 @@
<string>Draw frame around images</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkboxSplit">
<property name="text">
<string>Split left and right pages</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">

View File

@ -15,7 +15,6 @@
import os.path
import re
import sys

View File

@ -16,9 +16,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
from distutils.core import setup
import py2exe
import sys
sys.argv.append('py2exe')