Пример #1
0
def _smart_fn(filename):
    try:
        image_w, image_h = Util.get_size(filename)
        primary_w, primary_h = Util.get_primary_display_size(hidpi_scaled=True)
        total_w, total_h = Util.get_multimonitor_display_size()
        if image_w * image_h * 10 < primary_w * primary_h:
            # image way smaller than primary monitor, tile it
            return DisplayModeData(set_wallpaper_param="wallpaper")
        else:
            image_ratio = image_w / image_h
            primary_ratio = primary_w / primary_h
            total_ratio = total_w / total_h
            if 2 * abs(image_ratio - primary_ratio) / (image_ratio +
                                                       primary_ratio) < 0.2:
                # image ratio is close to primary screen ratio, zoom
                return DisplayModeData(set_wallpaper_param="zoom")
            elif 2 * abs(image_ratio - total_ratio) / (image_ratio +
                                                       total_ratio) < 0.2:
                # image ratio is close to multimonitor total screen ratio, span it
                return DisplayModeData(set_wallpaper_param="spanned")
            else:
                # image ratio not close to screen ratio, fit with a blurred background
                cmd = IMAGEMAGICK_FIT_WITH_BLUR.replace(
                    "%W", str(primary_w)).replace("%H", str(primary_h))
                return DisplayModeData(set_wallpaper_param="zoom",
                                       imagemagick_cmd=cmd)
    except:
        return DisplayModeData(set_wallpaper_param="zoom")
Пример #2
0
 def test_get_size(self):
     self.assertEqual((32, 32), Util.get_size("test.jpg"))
     self.assertRaises(Exception, lambda: Util.get_size("fake_image.jpg"))
Пример #3
0
 def test_get_size(self):
     self.assertEquals((32, 32), Util.get_size('test.jpg'))
     self.assertRaises(Exception, lambda: Util.get_size('fake_image.jpg'))