/* * _____ __ _ _ _____ _ * | __|___ ___ _ _ ___ ___| | |_|___| |_| _ | |_ _ ___ * |__ | -_| _| | | -_| _| |__| |_ -| _| __| | | |_ -| * |_____|___|_| \_/|___|_| |_____|_|___|_| |__| |_|___|___| * * ServerListPlus - http://git.io/slp * Copyright (c) 2014, Minecrell <https://github.com/Minecrell> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package net.minecrell.serverlistplus.canary; import com.google.common.base.Preconditions; import com.google.common.io.BaseEncoding; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.imageio.ImageIO; public final class CanaryFavicon { private CanaryFavicon() {} public static String create(BufferedImage image) { Preconditions.checkArgument(image.getWidth() == 64 && image.getHeight() == 64, "Invalid favicon bounds"); byte[] buf; try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { ImageIO.write(image, "PNG", out); buf = out.toByteArray(); } catch (IOException e) { throw new AssertionError(e); } return "data:image/png;base64," + BaseEncoding.base64().encode(buf); } }