コード例 #1
0
    def test_changeSimilarBgColors_basic(self, spec1Colors, spec2Colors,
                                         expectedSpec2Color):
        spec1 = ImageSpec(None, isLogo=True, colors=spec1Colors)
        spec2 = ImageSpec(None, isLogo=True, colors=spec2Colors)

        imageSpecs = [spec1, spec2]
        util.changeSimilarBgColors(imageSpecs)

        self.assertEqual(spec1Colors[0], spec1.colors[0])
        self.assertEqual(expectedSpec2Color, spec2.colors[0])
コード例 #2
0
    def test_changeSimilarBgColors_invert(self, spec1Colors, spec2Colors,
                                          expectedSpec2Color,
                                          expectedSpec2Invert,
                                          mockGetAllColors):
        spec1 = ImageSpec(None, isLogo=True, colors=spec1Colors, invert=True)
        spec2 = ImageSpec(None, isLogo=True, colors=spec2Colors, invert=True)

        mockGetAllColors.return_value = spec2Colors, []

        imageSpecs = [spec1, spec2]
        util.changeSimilarBgColors(imageSpecs)

        self.assertEqual(True, spec1.invert)

        self.assertEqual(expectedSpec2Color, spec2.colors[0])
        self.assertEqual(expectedSpec2Invert, spec2.invert)
コード例 #3
0
    def test_getAcceptableColor_analyzed(self, specColors, otherColors,
                                         analyzeColors, expected, mockAnalyze):
        imageSpec = ImageSpec(None, isLogo=True, colors=specColors)
        mockAnalyze.return_value = analyzeColors, []

        outColor = util.getAcceptableColor(imageSpec, otherColors)

        self.assertEqual(expected, outColor)
コード例 #4
0
def generateAndSaveLogoImage(ctx, logoFile, color, invert=False, index=None):
    imageSize = ctx.imageSize
    if color is None:
        imageSpec = ImageSpec(logoFile)
        override = getImageSpecOverride(ctx)
        imageSpec.override(override)
    else:
        imageSpec = ImageSpec(logoFile,
                              colors=[color],
                              invert=invert,
                              bg='solid')

    compSpec = CompositeSpec(imageSize, ctx.text)
    teamImg = ctx.imageGenerator.generateImage(compSpec, [imageSpec])

    imageFile = os.path.split(logoFile)[1]
    nameBase = parsing.cleanImageHints(imageFile)
    if color is None:
        imageName = os.path.splitext(imageFile)[0]
    else:
        imageName = nameBase
        if index is not None:
            imageName += f'_[{index}]'

        imageName += f'_{color}'
        if invert:
            imageName += 'i'

    imageName += '.' + ctx.config.createdImageExtension
    saveImage(ctx, teamImg, imageName)
コード例 #5
0
ファイル: ImageService.py プロジェクト: Veritas1000/pdst
    def getImageSpecsForFilename(self, filePath):
        log.debug(f"Getting image specs for {filePath}")

        sportEntry = self.sportService.getSportFor(filePath)

        if sportEntry is None:
            raise ImageGenerationException(
                f"Unable to find a matching Sport entry for {filePath}!")

        filename = os.path.split(filePath)[1]
        (team1, team2) = parsing.teamNamesFromFilename(filename)
        teamNames = removeNones([team1, team2])
        result = []

        for team in teamNames:
            teamSpec = self.__imageSpecFor(sportEntry, team)
            if teamSpec is not None:
                result.append(teamSpec)

        if len(result) == 0:
            title = parsing.titleFromFilename(filePath)
            if title is not None:
                imageSpec = self.__imageSpecFor(sportEntry, title)
                if imageSpec is not None:
                    imageSpec.isLogo = False
                    result.append(imageSpec)

        if len(result) == 0:
            if sportEntry.image is not None:
                imageSpec = ImageSpec(sportEntry.image, False)
                result.append(imageSpec)
            elif sportEntry.logo is not None:
                imageSpec = ImageSpec(sportEntry.logo, True)
                result.append(imageSpec)
            else:
                raise ImageGenerationException(
                    f"Unable to get any image specs for {filePath}!")

        return result
コード例 #6
0
ファイル: ImageService.py プロジェクト: Veritas1000/pdst
    def __imageSpecFor(self, sportEntry, teamName):
        imageSpec = None
        if sportEntry is not None:
            if sportEntry.image is not None:
                imageSpec = ImageSpec(sportEntry.image, False)

            if sportEntry.imageRoot is None:
                if sportEntry.image is None:
                    log.debug(
                        f"Sport {sportEntry.name} has no configured image or imageRoot"
                    )
            else:
                matcher = ImageMatcher(sportEntry.imageRoot)
                image = matcher.findBestMatch(teamName, sportEntry.name)
                if image is None:
                    log.debug(f"No image match found for {teamName}")
                else:
                    imageSpec = ImageSpec(image)

            if sportEntry.background is not None:
                imageSpec.bg = sportEntry.background

        return imageSpec
コード例 #7
0
def getImageSpecOverride(ctx):
    override = ImageSpec(None)
    if len(ctx.colors) > 0:
        override.colors = ctx.colors

    override.bg = ctx.background
    override.invert = ctx.invert

    if ctx.colorOverlay is not None:
        override.maskSpec = ColorOverlaySpec(ctx.colorOverlay)

    if ctx.stroke[0] is not None:
        override.strokeSpec = StrokeSpec(ctx.stroke[0], ctx.stroke[1])

    return override
コード例 #8
0
    def test_ImageSpec_strokeSpec_filename(self):
        spec = ImageSpec("Team_stroke$1$000.png")

        self.assertEqual(1, spec.strokeSpec.size)
        self.assertEqual('000', spec.strokeSpec.colorHex)
コード例 #9
0
    def test_ImageSpec_strokeSpec_override(self):
        spec = ImageSpec("Team_stroke$1$000.png",
                         strokeSpec=StrokeSpec(7, 'fff'))

        self.assertEqual(7, spec.strokeSpec.size)
        self.assertEqual('fff', spec.strokeSpec.colorHex)
コード例 #10
0
    def test_getAcceptableColor_basic(self, specColors, otherColors, expected):
        imageSpec = ImageSpec(None, isLogo=True, colors=specColors)

        outColor = util.getAcceptableColor(imageSpec, otherColors)

        self.assertEqual(expected, outColor)