CollinHeist / TitleCardMaker

Automated title card maker for Plex, Jellyfin, and Emby
https://titlecardmaker.com/
GNU General Public License v3.0
466 stars 22 forks source link

Create series and/or season posters #144

Closed CollinHeist closed 2 years ago

CollinHeist commented 2 years ago

Add some functionality to create series/season posters.

Could take in/query TMDb for textless posts, add logo to fixed position, and add some season text beneath that.

Haven't determined how this behavior would be specified.

CollinHeist commented 2 years ago

Working on this, I've got a working custom font and generic font version:

Generic Font

Image

Command

convert "season1.jpg" -resize 1000x1500 \( "gradient.png" -resize 1000x1500! \) -composite -gravity south \( "logo.png" -resize 730x \) -geometry +0+178 -composite -font "Proxima Nova Semibold.otf" -fill "#CFCFCF" -pointsize 40 -kerning 15 -annotate +0+106 "SEASON ONE" out.png

Custom Font

Image

Command

convert "season1.jpg" -resize 1000x1500 \( "gradient.png" -resize 1000x1500! \) -composite -gravity south \( "logo.png" -resize 730x \) -geometry +0+178 -composite -font "Proxima Nova Semibold.otf" -fill "#D12D27" -pointsize 40 -kerning 15 -annotate +0+106 "SEASON_1.0" out.png
CollinHeist commented 2 years ago

So if customized fonts are to be supported, then kerning, font size, and color will need to be adjustable at a minimum

CollinHeist commented 2 years ago

Haven't decided the best way to specify whether or not to create these. I think it should be disabled by default (a lot of people might manually specify assets). Working idea:

series:
  Mr. Robot:
    year: 2016
    # etc.
    seasons:
      posters:
        create: true
        font:
          file: ./path/to/some/file.ext
          color: "#hex"
      1: season_1.0
      2: season_2.0
      # etc.

Should always use season{number}.jpg (i.e. season1.jpg) within source directory as source image.

Use the season title indicated within the season subsection (so season_text="season_1.0", etc.).

Wdvh commented 2 years ago

I'm thinking use only manually added images there is so much falsely declared stuff on TMDb in the poster section. If no season title is found use standards if they are use them.

CollinHeist commented 2 years ago

So the downside to the above implementation is that season posters couldn't be created if episode ranges were used.

I think this subsection should be moved out of the seasons attribute (also removes a layer of nesting..), and allowing for manually specified titles (would override all other title specifications) is best. Something like:

series:
  Mr. Robot:
    year: 2016
    # etc.
    season_posters:
      create: true
      titles:
        1: season_1.0
        2: season_2.0
      font:
          file: ./path/to/some/file.ext
          color: "#hex"
    episode_ranges:
      1-10: different title
      # etc.
CollinHeist commented 2 years ago

Should also have option for whether to spell the season number or not, i.e. Season 1 vs. Season One (without having to manually specify each season title).

Probably some attribute:

spell_numbers: true | false # Defaults to true