Skip to content

Commit

Permalink
Add option for padding (padding_percent)
Browse files Browse the repository at this point in the history
  • Loading branch information
laggykiller committed Mar 28, 2024
1 parent 614d6c5 commit 6849ce0
Show file tree
Hide file tree
Showing 9 changed files with 166 additions and 120 deletions.
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,23 +96,24 @@ usage: sticker-convert.py [-h] [--version] [--no-confirm] [--custom-presets CUST
[--preset {auto,signal,telegram,telegram_emoji,whatsapp,line,kakao,imessage_small,imessage_medium,imessage_large,custom}]
[--steps STEPS] [--processes PROCESSES] [--fps-min FPS_MIN] [--fps-max FPS_MAX]
[--fps-power FPS_POWER] [--res-min RES_MIN] [--res-max RES_MAX] [--res-w-min RES_W_MIN]
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX] [--res-power RES_POWER]
[--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX] [--quality-power QUALITY_POWER]
[--color-min COLOR_MIN] [--color-max COLOR_MAX] [--color-power COLOR_POWER]
[--duration-min DURATION_MIN] [--duration-max DURATION_MAX] [--bg-color BG_COLOR]
[--vid-size-max VID_SIZE_MAX] [--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT]
[--img-format IMG_FORMAT] [--fake-vid] [--scale-filter SCALE_FILTER]
[--quantize-method QUANTIZE_METHOD] [--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI]
[--signal-uuid SIGNAL_UUID] [--signal-password SIGNAL_PASSWORD] [--signal-get-auth]
[--signal-data-dir SIGNAL_DATA_DIR] [--telegram-token TELEGRAM_TOKEN]
[--telegram-userid TELEGRAM_USERID] [--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth]
[--kakao-username KAKAO_USERNAME] [--kakao-password KAKAO_PASSWORD]
[--kakao-country-code KAKAO_COUNTRY_CODE] [--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth]
[--line-cookies LINE_COOKIES] [--save-cred SAVE_CRED]
[--res-w-max RES_W_MAX] [--res-h-min RES_H_MIN] [--res-h-max RES_H_MAX]
[--res-power RES_POWER] [--quality-min QUALITY_MIN] [--quality-max QUALITY_MAX]
[--quality-power QUALITY_POWER] [--color-min COLOR_MIN] [--color-max COLOR_MAX]
[--color-power COLOR_POWER] [--duration-min DURATION_MIN] [--duration-max DURATION_MAX]
[--padding-percent PADDING_PERCENT] [--bg-color BG_COLOR] [--vid-size-max VID_SIZE_MAX]
[--img-size-max IMG_SIZE_MAX] [--vid-format VID_FORMAT] [--img-format IMG_FORMAT]
[--fake-vid] [--scale-filter SCALE_FILTER] [--quantize-method QUANTIZE_METHOD]
[--cache-dir CACHE_DIR] [--default-emoji DEFAULT_EMOJI] [--signal-uuid SIGNAL_UUID]
[--signal-password SIGNAL_PASSWORD] [--signal-get-auth] [--signal-data-dir SIGNAL_DATA_DIR]
[--telegram-token TELEGRAM_TOKEN] [--telegram-userid TELEGRAM_USERID]
[--kakao-auth-token KAKAO_AUTH_TOKEN] [--kakao-get-auth] [--kakao-username KAKAO_USERNAME]
[--kakao-password KAKAO_PASSWORD] [--kakao-country-code KAKAO_COUNTRY_CODE]
[--kakao-phone-number KAKAO_PHONE_NUMBER] [--line-get-auth] [--line-cookies LINE_COOKIES]
[--save-cred SAVE_CRED]
CLI for stickers-convert
optional arguments:
options:
-h, --help show this help message and exit
--version show program's version number and exit
--no-confirm Do not ask any questions.
Expand Down Expand Up @@ -198,6 +199,8 @@ Compression options:
Set minimum output duration in miliseconds.
--duration-max DURATION_MAX
Set maximum output duration in miliseconds.
--padding-percent PADDING_PERCENT
Set percentage of space used as padding.
--bg-color BG_COLOR Set custom background color.
Example: 00ff00 for green.
If this is not set, background color would be auto set to black if image is bright, or white if image is dark.
Expand Down
4 changes: 4 additions & 0 deletions src/sticker_convert/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ def cli(self) -> None:
"duration_max",
"vid_size_max",
"img_size_max",
"padding_percent",
)
flags_comp_float = ("fps_power", "res_power", "quality_power", "color_power")
flags_comp_str = (
Expand Down Expand Up @@ -372,6 +373,9 @@ def get_opt_comp(self, args: Namespace) -> CompOption:
bg_color=self.compression_presets[preset]["bg_color"]
if args.bg_color is None
else args.bg_color,
padding_percent=self.compression_presets[preset]["padding_percent"]
if args.padding_percent is None
else args.padding_percent,
steps=self.compression_presets[preset]["steps"]
if args.steps is None
else args.steps,
Expand Down
9 changes: 5 additions & 4 deletions src/sticker_convert/converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -597,12 +597,13 @@ def frames_resize(
if self.res_h is None:
self.res_h = height

scaling = 1 - (self.opt_comp.padding_percent / 100)
if width > height:
width_new = self.res_w
height_new = height * self.res_w // width
width_new = int(self.res_w * scaling)
height_new = int(height * self.res_w // width * scaling)
else:
height_new = self.res_h
width_new = width * self.res_h // height
height_new = int(self.res_h * scaling)
width_new = int(width * self.res_h // height * scaling)

with im.resize((width_new, height_new), resample=resample) as im_resized:
with Image.new(
Expand Down
4 changes: 3 additions & 1 deletion src/sticker_convert/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ def declare_variables(self) -> None:
self.duration_min_var = IntVar(self)
self.duration_max_var = IntVar(self)
self.duration_disable_var = BooleanVar()
self.padding_percent_var = IntVar(self)
self.img_size_max_var = IntVar(self)
self.vid_size_max_var = IntVar(self)
self.size_disable_var = BooleanVar()
Expand Down Expand Up @@ -519,6 +520,7 @@ def get_opt_comp(self) -> CompOption:
if not self.duration_disable_var.get()
else None,
bg_color=self.bg_color_var.get(),
padding_percent=self.padding_percent_var.get(),
steps=self.steps_var.get(),
fake_vid=self.fake_vid_var.get(),
scale_filter=self.scale_filter_var.get(),
Expand Down Expand Up @@ -642,10 +644,10 @@ def cb_msg_block(

def cb_bar(
self,
*args: Any,
set_progress_mode: Optional[str] = None,
steps: int = 0,
update_bar: int = 0,
*args: Any,
**kwargs: Any,
) -> None:
self.progress_frame.update_progress_bar(
Expand Down
Loading

0 comments on commit 6849ce0

Please sign in to comment.