add option to portrait only mode

This commit is contained in:
Celogeek 2023-05-04 19:36:26 +02:00
parent d7e311488f
commit bd8506d367
Signed by: celogeek
SSH Key Fingerprint: SHA256:njNJLzoLQdbV9PC6ehcruRb0QnEgxABoCYZ+0+aUIYc
4 changed files with 22 additions and 27 deletions

View File

@ -128,6 +128,7 @@ func (c *Converter) InitParse() {
c.AddBoolParam(&c.Options.NoResize, "noresize", c.Options.NoResize, "Do not reduce image size if exceed device size") c.AddBoolParam(&c.Options.NoResize, "noresize", c.Options.NoResize, "Do not reduce image size if exceed device size")
c.AddStringParam(&c.Options.Format, "format", c.Options.Format, "Format of output images: jpeg (lossy), png (lossless)") c.AddStringParam(&c.Options.Format, "format", c.Options.Format, "Format of output images: jpeg (lossy), png (lossless)")
c.AddFloatParam(&c.Options.AspectRatio, "aspect-ratio", c.Options.AspectRatio, "Aspect ratio (height/width) of the output\n -1 = same as device\n 0 = same as source\n1.6 = amazon advice for kindle") c.AddFloatParam(&c.Options.AspectRatio, "aspect-ratio", c.Options.AspectRatio, "Aspect ratio (height/width) of the output\n -1 = same as device\n 0 = same as source\n1.6 = amazon advice for kindle")
c.AddBoolParam(&c.Options.PortraitOnly, "portrait-only", c.Options.PortraitOnly, "Portrait only: force orientation to portrait only.")
c.AddSection("Default config") c.AddSection("Default config")
c.AddBoolParam(&c.Options.Show, "show", false, "Show your default parameters") c.AddBoolParam(&c.Options.Show, "show", false, "Show your default parameters")

View File

@ -44,6 +44,7 @@ type Options struct {
NoResize bool `yaml:"noresize"` NoResize bool `yaml:"noresize"`
Format string `yaml:"format"` Format string `yaml:"format"`
AspectRatio float64 `yaml:"aspect_ratio"` AspectRatio float64 `yaml:"aspect_ratio"`
PortraitOnly bool `yaml:"portrait_only"`
// Default Config // Default Config
Show bool `yaml:"-"` Show bool `yaml:"-"`
@ -73,30 +74,20 @@ type Options struct {
// Initialize default options. // Initialize default options.
func New() *Options { func New() *Options {
return &Options{ return &Options{
Profile: "", Quality: 85,
Quality: 85, Grayscale: true,
Grayscale: true, Crop: true,
Crop: true, CropRatioLeft: 1,
CropRatioLeft: 1, CropRatioUp: 1,
CropRatioUp: 1, CropRatioRight: 1,
CropRatioRight: 1, CropRatioBottom: 3,
CropRatioBottom: 3, NoBlankImage: true,
Brightness: 0, HasCover: true,
Contrast: 0, SortPathMode: 1,
AutoRotate: false, ForegroundColor: "000",
AutoSplitDoublePage: false, BackgroundColor: "FFF",
NoBlankImage: true, Format: "jpeg",
Manga: false, profiles: profiles.New(),
HasCover: true,
LimitMb: 0,
StripFirstDirectoryFromToc: false,
SortPathMode: 1,
ForegroundColor: "000",
BackgroundColor: "FFF",
NoResize: false,
Format: "jpeg",
AspectRatio: 0,
profiles: profiles.New(),
} }
} }
@ -202,6 +193,7 @@ func (o *Options) ShowConfig() string {
{"Background Color", fmt.Sprintf("#%s", o.BackgroundColor), true}, {"Background Color", fmt.Sprintf("#%s", o.BackgroundColor), true},
{"Resize", !o.NoResize, true}, {"Resize", !o.NoResize, true},
{"Aspect Ratio", aspectRatio, true}, {"Aspect Ratio", aspectRatio, true},
{"Portrait Only", o.PortraitOnly, true},
} { } {
if v.Condition { if v.Condition {
b.WriteString(fmt.Sprintf("\n %-26s: %v", v.Key, v.Value)) b.WriteString(fmt.Sprintf("\n %-26s: %v", v.Key, v.Value))

View File

@ -17,6 +17,7 @@ type Color struct {
type View struct { type View struct {
Width, Height int Width, Height int
AspectRatio float64 AspectRatio float64
PortraitOnly bool
Color Color Color Color
} }

View File

@ -130,9 +130,10 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
Manga: cmd.Options.Manga, Manga: cmd.Options.Manga,
HasCover: cmd.Options.HasCover, HasCover: cmd.Options.HasCover,
View: &epuboptions.View{ View: &epuboptions.View{
Width: profile.Width, Width: profile.Width,
Height: profile.Height, Height: profile.Height,
AspectRatio: cmd.Options.AspectRatio, AspectRatio: cmd.Options.AspectRatio,
PortraitOnly: cmd.Options.PortraitOnly,
Color: epuboptions.Color{ Color: epuboptions.Color{
Foreground: cmd.Options.ForegroundColor, Foreground: cmd.Options.ForegroundColor,
Background: cmd.Options.BackgroundColor, Background: cmd.Options.BackgroundColor,