about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore10
-rwxr-xr-xkcc/comic2ebook.py4
-rwxr-xr-xkcc/image.py54
3 files changed, 37 insertions, 31 deletions
diff --git a/.gitignore b/.gitignore
index ce8a767..06dbc60 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-/*.pyc
-/*.cbz
-/*.cbr
-/.idea
-/build
\ No newline at end of file
+*.pyc
+*.cbz
+*.cbr
+.idea
+build
\ No newline at end of file
diff --git a/kcc/comic2ebook.py b/kcc/comic2ebook.py
index e3f3150..cf21ece 100755
--- a/kcc/comic2ebook.py
+++ b/kcc/comic2ebook.py
@@ -227,7 +227,7 @@ def dirImgProcess(path):
                 else:
                     print ".",
                 img = image.ComicPage(os.path.join(dirpath, afile), options.profile)
-                split = img.splitPage(dirpath, options.righttoleft)
+                split = img.splitPage(dirpath, options.righttoleft, options.rotate)
                 if split is not None:
                     if options.verbose:
                         print "Splitted " + afile
@@ -333,6 +333,8 @@ def main(argv=None):
                       + "is not like the device's one [default=False]")
     parser.add_option("--no-cut-page-numbers", action="store_false", dest="cutpagenumbers", default=True,
                       help="Do not try to cut page numbering on images [default=True]")
+    parser.add_option("--rotate", action="store_true", dest="rotate", default=False,
+                      help="Disable page spliting. Instead rotate images [default=False]")
     options, args = parser.parse_args(argv)
     if len(args) != 1:
         parser.print_help()
diff --git a/kcc/image.py b/kcc/image.py
index 9421d15..81b88a8 100755
--- a/kcc/image.py
+++ b/kcc/image.py
@@ -159,36 +159,40 @@ class ComicPage:
         self.image = ImageOps.fit(self.image, self.size, method=method, centering=(0.5, 0.5))
         return self.image
 
-    def splitPage(self, targetdir, righttoleft=False):
+    def splitPage(self, targetdir, righttoleft=False, rotate=False):
         width, height = self.image.size
         dstwidth, dstheight = self.size
         #print "Image is %d x %d" % (width,height)
         # only split if origin is not oriented the same as target
         if (width > height) != (dstwidth > dstheight):
-            if width > height:
-                # source is landscape, so split by the width
-                leftbox = (0, 0, width / 2, height)
-                rightbox = (width / 2, 0, width, height)
-            else:
-                # source is portrait and target is landscape, so split by the height
-                leftbox = (0, 0, width, height / 2)
-                rightbox = (0, height / 2, width, height)
-            filename = os.path.splitext(os.path.basename(self.origFileName))
-            fileone = targetdir + '/' + filename[0] + '-1' + filename[1]
-            filetwo = targetdir + '/' + filename[0] + '-2' + filename[1]
-            try:
-                if righttoleft:
-                    pageone = self.image.crop(rightbox)
-                    pagetwo = self.image.crop(leftbox)
-                else:
-                    pageone = self.image.crop(leftbox)
-                    pagetwo = self.image.crop(rightbox)
-                pageone.save(fileone)
-                pagetwo.save(filetwo)
-                os.remove(self.origFileName)
-            except IOError as e:
-                raise RuntimeError('Cannot write image in directory %s: %s' % (targetdir, e))
-            return fileone, filetwo
+			if rotate:
+				self.image = self.image.rotate(90)
+				return None
+			else:
+				if width > height:
+					# source is landscape, so split by the width
+					leftbox = (0, 0, width / 2, height)
+					rightbox = (width / 2, 0, width, height)
+				else:
+					# source is portrait and target is landscape, so split by the height
+					leftbox = (0, 0, width, height / 2)
+					rightbox = (0, height / 2, width, height)
+				filename = os.path.splitext(os.path.basename(self.origFileName))
+				fileone = targetdir + '/' + filename[0] + '-1' + filename[1]
+				filetwo = targetdir + '/' + filename[0] + '-2' + filename[1]
+				try:
+					if righttoleft:
+						pageone = self.image.crop(rightbox)
+						pagetwo = self.image.crop(leftbox)
+					else:
+						pageone = self.image.crop(leftbox)
+						pagetwo = self.image.crop(rightbox)
+					pageone.save(fileone)
+					pagetwo.save(filetwo)
+					os.remove(self.origFileName)
+				except IOError as e:
+					raise RuntimeError('Cannot write image in directory %s: %s' % (targetdir, e))
+				return fileone, filetwo
         else:
             return None