public function load($mime, $blob) {
        if (!isset($this->loaders[$mime])) {
            return null;
        }

        foreach ($this->loaders[$mime] as $loader) {
            $result = $loader->load($this->imagick, $blob, $mime);

            // If the result is false, let the loop continue to try more loaders, if they exist. If
            // the result is anything else, return the imagick instance as this means that the
            // loader managed to load the image
            if ($result !== false) {
                // Convert images that are CMYK without an explicit profile to SRGB
                $iccProfiles = $this->imagick->getImageProfiles('icc', false);

                if (!$iccProfiles && ($this->imagick->getImageColorspace() === Imagick::COLORSPACE_CMYK)) {
                    $iccCMYK = file_get_contents(__DIR__ . '/../../data/profiles/argyllcms_cmyk.icm');
                    $this->imagick->profileImage('icc', $iccCMYK);

                    $iccSRGB = file_get_contents(__DIR__ . '/../../data/profiles/sRGB_v4_ICC_preference.icc');
                    $this->imagick->profileImage('icc', $iccSRGB);

                    $this->imagick->setImageColorSpace(Imagick::COLORSPACE_SRGB);
                }

                return $this->imagick;
            }
        }

        return false;
    }