def test_addDropShadowComplex_BGBlue():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels with a black shadow to the
	bottom right on a blue background
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowComplex_BGBlue.png", imageEdit.addDropShadowComplex(IMAGE, 5, 50, [50, 50], "#0000ff", "#000000"))
def test_addDropShadowComplex_ShadowGreen():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels with a green shadow to the
	bottom right on a red background
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowComplex_ShadowGreen.png", imageEdit.addDropShadowComplex(IMAGE, 5, 50, [50, 50], "#ff0000", "#00ff00"))
def test_addDropShadowComplex_Border100():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels with a black shadow to the
	bottom right on a red background with some additional padding
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowComplex_Border100.png", imageEdit.addDropShadowComplex(IMAGE, 5, 100, [50, 50], "#ff0000", "#000000"))
def test_addDropShadowComplex_Iterations0():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels with a black blocky shadow to the
	bottom right on a red background
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowComplex_Iterations0.png", imageEdit.addDropShadowComplex(IMAGE, 0, 50, [50, 50], "#ff0000", "#000000"))
def test_addDropShadowSimple_bottomRight():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels with a shadow 50 px to the bottom
	right
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowSimple_bottomRight.png", imageEdit.addDropShadowSimple(IMAGE, [50, 50]))
def test_addDropShadowSimple_topLeft():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels with a shadow 50 px to the top
	left
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowSimple_topLeft.png", imageEdit.addDropShadowSimple(IMAGE, [-50, -50]))
def test_saveImage():
	imageEdit.saveImage(OUTPUT + "/test_saveImage_NotOptimised.png", IMAGE, False)
	imageEdit.saveImage(OUTPUT + "/test_saveImage_Optimised.png", IMAGE)
	# PNG-24 should be 3x PNG-8 so Optimised = 0.33 * NotOptimised
	# Looks like this doesn't work as well. More like 0.66 * NotOptimised
	NotOptimised = os.path.getsize(OUTPUT + "/test_saveImage_NotOptimised.png")
	Optimised = os.path.getsize(OUTPUT + "/test_saveImage_Optimised.png")
	assert(Optimised < NotOptimised * 0.67)
def test_convertBlackAndWhite_edges():
	imageEdit.saveImage(OUTPUT+ "/test_convertBlackAndWhite_edges.png", imageEdit.convertBlackAndWhite(IMAGE, "edges"))
def test_convertBlackAndWhite_filterDarker():
	imageEdit.saveImage(OUTPUT+ "/test_convertBlackAndWhite_filter-darker.png", imageEdit.convertBlackAndWhite(IMAGE, "filter-darker"))
def test_convertBlackAndWhite_foreground():
	imageEdit.saveImage(OUTPUT+ "/test_convertBlackAndWhite_foreground.png", imageEdit.convertBlackAndWhite(IMAGE, "foreground"))
def test_roundCornersPercentAntiAlias():
	imageEdit.saveImage(OUTPUT+ "/test_roundCornersPercentAntiAlias.png", imageEdit.roundCornersAntiAlias(IMAGE, "50%"))
def test_uncrop():
	'''
	Manual Check
	Desired Output: An 'uncropped' image of a field
	'''
	imageEdit.saveImage(OUTPUT + "/test_uncrop.png", imageEdit.uncrop(imageEdit.openImage(INPUT + "/test_field.png"), 64))
def test_roundCorners_0():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels
	'''
	imageEdit.saveImage(OUTPUT+ "/test_roundCorners_0.png", imageEdit.roundCorners(IMAGE, 0))
if __name__ == "__main__":  # pragma: no cover

    # Image in should be 512px
    images = imageEdit.openImagesInDir(THISDIR + "/input/*")
    for imageRef in images:
        fileName, squareImage = imageRef
        fileNameParts = fileName.split(os.sep)
        fileName = fileNameParts[len(fileNameParts) - 1]
        imageEdit.logPrint(fileName, "bold")
        outputDir = THISDIR + "/output/" + fileName
        storeDir = outputDir + "/store"
        pwaDir = outputDir + "/pwa"

        # Create a mask image and then convert to icon
        if (imageEdit.getImageDesc(squareImage) == "mask"):
            imageEdit.saveImage(pwaDir + "/mask.png",
                                imageEdit.resizeImageSquare(squareImage, 512))
            squareImage = imageEdit.removeImagePadding(squareImage, 64)

        roundImage = imageEdit.roundCornersAntiAlias(squareImage, 256)
        squircleImage = imageEdit.roundCornersAntiAlias(
            squareImage, 102)  # Google Play Rounding
        '''
		Store Images
		'''

        # store-windows - Size 300px
        imageEdit.saveImage(
            storeDir + "/store-windows.png",
            imageEdit.resizeImageSquare(squareImage, "0.5859375x"))
        # store-google-play - Size 512, png32
        imageEdit.saveImage(storeDir + "/store-google-play.png", squareImage,
def test_addDropShadowComplex_Border0():
	'''
	Manual Check
	Desired Output: A square image 512x512 pixels shadow is not smooth at edge
	'''
	imageEdit.saveImage(OUTPUT+ "/test_addDropShadowComplex_Border0.png", imageEdit.addDropShadowComplex(IMAGE, 5, 0, [50, 50], "#ff0000", "#000000"))
def test_roundCorners_256():
	'''
	Manual Check
	Desired Output: A circular image 512x512 pixels
	'''
	imageEdit.saveImage(OUTPUT+ "/test_roundCorners_256.png", imageEdit.roundCorners(IMAGE, 256))
def test_addText_under16():
	imageEdit.saveImage(OUTPUT+ "/test_addText_under16.png", imageEdit.addText(IMAGE, "01234"))
	for imageRef in images:
		fileName, squareImage = imageRef
		fileNameParts = fileName.split(os.sep)
		fileName = fileNameParts[len(fileNameParts)-1]
		imageEdit.logPrint(fileName, "bold")
		outputDir = THISDIR + "/output/" + fileName + "/proj-icon"

		# Proj-icon does not want to be a mask

		if (imageEdit.getImageDesc(squareImage) == "mask"):
			textName = fileName.split('.')[0]
			imageEdit.saveImage(outputDir + "/name.png",
				imageEdit.addDropShadowSimple(
					imageEdit.roundCornersAntiAlias(
						imageEdit.resizeImageSquare(
							imageEdit.addText(squareImage, textName),
						"0.5x"),
					64),
				[-10, 10])
			)


			squareImage = imageEdit.removeImagePadding(squareImage, 64)


		roundImage = imageEdit.roundCornersAntiAlias(squareImage, 256)
		squircleImage = imageEdit.roundCornersAntiAlias(squareImage, 102) # Google Play Rounding

		# store-google-play-raster - Drop shadow, radius 20% (102,51)
		googlePlay = imageEdit.addDropShadowSimple(squircleImage, [-10, 10])
		imageEdit.saveImage(outputDir + "/proj-icon.png", imageEdit.resizeImageSquare(googlePlay, 256))
def test_addText_over16():
	imageEdit.saveImage(OUTPUT+ "/test_addText_over16.png", imageEdit.addText(IMAGE, "012345689ABCDEFG"))
def test_roundCornersPercent_50():
	'''
	Manual Check
	Desired Output: A circular image 512x512 pixels
	'''
	imageEdit.saveImage(OUTPUT+ "/test_roundCornersPercent_50.png", imageEdit.roundCorners(IMAGE, "50%"))
        "PWA.HappyShibe/": ["index.html"],
        "PWA.PasswordGen/": ["index.html", "advanced.html"],
    }

    scripts = [
        "const rootStylesAuto = document.styleSheets[0].cssRules[0].style; const darkStylesAuto = document.styleSheets[0].cssRules[1].cssRules[0].style; rootStylesAuto.setProperty(\"--var-c-primary\", \"#FAFAFA\"); rootStylesAuto.setProperty(\"--var-c-secondary\", \"#EAEAEB\"); rootStylesAuto.setProperty(\"--var-c-text\", \"#383A42\"); darkStylesAuto.setProperty(\"--var-c-primary\", \"#FAFAFA\"); darkStylesAuto.setProperty(\"--var-c-secondary\", \"#EAEAEB\"); darkStylesAuto.setProperty(\"--var-c-text\", \"#383A42\"); rootStylesAuto.setProperty(\"--var-c-black\", \"0\")",
        "const rootStylesAuto = document.styleSheets[0].cssRules[0].style; const darkStylesAuto = document.styleSheets[0].cssRules[1].cssRules[0].style; rootStylesAuto.setProperty(\"--var-c-primary\", \"#181A1F\"); rootStylesAuto.setProperty(\"--var-c-secondary\", \"#282C34\"); rootStylesAuto.setProperty(\"--var-c-text\", \"#ABB2BF\"); darkStylesAuto.setProperty(\"--var-c-primary\", \"#181A1F\"); darkStylesAuto.setProperty(\"--var-c-secondary\", \"#282C34\"); darkStylesAuto.setProperty(\"--var-c-text\", \"#ABB2BF\"); rootStylesAuto.setProperty(\"--var-c-black\", \"0\")",
        "const rootStylesAuto = document.styleSheets[0].cssRules[0].style; const darkStylesAuto = document.styleSheets[0].cssRules[1].cssRules[0].style; rootStylesAuto.setProperty(\"--var-c-primary\", \"#000000\"); rootStylesAuto.setProperty(\"--var-c-secondary\", \"#000000\"); rootStylesAuto.setProperty(\"--var-c-text\", \"#ABB2BF\"); darkStylesAuto.setProperty(\"--var-c-primary\", \"#181A1F\"); darkStylesAuto.setProperty(\"--var-c-secondary\", \"#282C34\"); darkStylesAuto.setProperty(\"--var-c-text\", \"#ABB2BF\"); rootStylesAuto.setProperty(\"--var-c-black\", \"1\")"
    ]

    for project in projects:
        pages = projects[project]
        for index, script in enumerate(scripts):
            imageEdit.saveImage(
                outputDir + project + "themes/theme-" + str(index) + ".png",
                imageEdit.resizeImage(
                    imageGrab.grabWebpage(baseUrl + project + pages[0],
                                          (375, 667),
                                          evalJs=script), "2x", "2x"))
        for index, page in enumerate(pages):
            imageEdit.saveImage(
                outputDir + project + "mobile/screenshot-" + str(index) +
                ".png",
                imageEdit.resizeImage(
                    imageGrab.grabWebpage(baseUrl + project + page, (375, 667),
                                          evalJs=scripts[0]), "2x", "2x"))
            imageEdit.saveImage(
                outputDir + project + "desktop/screenshot-" + str(index) +
                ".png",
                imageGrab.grabWebpage(baseUrl + project + page, (1920, 1080),
                                      evalJs=scripts[0]))
def test_roundCornersAntiAlias():
	imageEdit.saveImage(OUTPUT+ "/test_roundCornersAntiAlias.png", imageEdit.roundCornersAntiAlias(IMAGE, 256))
Exemple #23
0
        action="store_true")

    args = parser.parse_args()

    if args.batch:
        images = imageEdit.openImagesInDir(THISDIR + "/input/*")
        print(images)
        for imageRef in images:
            fileName, image = imageRef
            fileNameParts = fileName.split("\\")
            fileName = fileNameParts[len(fileNameParts) - 1]
            print(fileName)
            if args.radius is not None:
                image = imageEdit.roundCorners(image, int(args.radius))
            else:
                image = imageEdit.roundCorners(image, int(image.width / 2))
            imageEdit.saveImage(THISDIR + "/output/out-" + fileName, image)

    else:
        im = imageEdit.openImage(THISDIR + "/" + args.image)
        if args.radius is not None:
            im = imageEdit.roundCorners(im, int(args.radius))
        else:
            im = imageEdit.roundCorners(im, int(im.width / 2))

        if args.output is not None:
            outFileName = args.output
        else:
            outFileName = args.image
        imageEdit.saveImage(THISDIR + "/" + outFileName, im)
def test_cropCentre():
	'''
	Manual Check
	Desired Output: A square image 256x256 pixels
	'''
	imageEdit.saveImage(OUTPUT+ "/test_cropCentre.png", imageEdit.cropCentre(IMAGE, 256, 256))