精华内容
下载资源
问答
  • 2022-05-16 10:31:10

    1. 网站logo

    favicon.ico图标是网站的缩略标志,可以显示在浏览器标签、地址栏左边和收藏夹,是展示网站个性的缩略logo标志,也可以说是网站头像
    常用的favicon.ico图标有3种16×16(推荐)、32×32、48×48

    网页引用
    <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
    <link rel="icon" href="../favicon.ico">
    
    在线制作ico   https://www.easyicon.net/covert/
    

    2. Java实现png转ico

    pom依赖
    参考 https://github.com/HuBoZhi/image4j,本地打包image4j

    <!--png转ico,本地打包的-->
    <dependency>
        <groupId>net.sf</groupId>
        <artifactId>image4j</artifactId>
        <version>1.0.0</version>
    </dependency>
    
     <!--图片缩放-->
    <dependency>
        <groupId>com.mortennobel</groupId>
        <artifactId>java-image-scaling</artifactId>
        <version>0.8.6</version>
    </dependency>
    

    实体类ImageEntity

    @Data
    public class ImageEntity {
        /**
         * 尺寸类型,16x16,32x32,48x48,64x64,128x128,256x256,512x512
         */
        private String size;
        /**
         * 图片类型 png,jpg
         */
        private String imgType;
    }
    
    

    ImageService类

    package com.cmbchina.file.service;
    
    import com.cmbchina.base.exception.BizException;
    import com.cmbchina.file.base.ImageEntity;
    import com.mortennobel.imagescaling.AdvancedResizeOp;
    import com.mortennobel.imagescaling.ResampleOp;
    import lombok.extern.slf4j.Slf4j;
    import net.sf.image4j.use.Image4j;
    import org.apache.commons.io.FilenameUtils;
    import org.apache.commons.io.IOUtils;
    import org.apache.commons.lang3.SystemUtils;
    import org.springframework.stereotype.Service;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import java.util.Base64;
    import java.util.UUID;
    
    /**
     * png,jpg 转 ico
     *
     * @author liuxb
     * @date 2022/5/15 12:47
     **/
    @Slf4j
    @Service
    public class ImageService {
    
        public String imgToICO(MultipartFile file, ImageEntity imageEntity) throws IOException {
            String originalFilename = file.getOriginalFilename();
            InputStream inputStream = file.getInputStream();
            //保存到本地
            String fullName = FilenameUtils.concat(SystemUtils.JAVA_IO_TMPDIR, originalFilename);
            log.info("保存上传图片到本地:{}", fullName);
            File pngFile = new File(fullName);
            OutputStream out = new FileOutputStream(pngFile);
            IOUtils.write(IOUtils.toByteArray(inputStream), out);
            IOUtils.closeQuietly(out);
            IOUtils.closeQuietly(inputStream);
    
            //修改尺寸
            String ext = FilenameUtils.getExtension(originalFilename).toLowerCase();
            File resizeFile = new File(FilenameUtils.concat(SystemUtils.JAVA_IO_TMPDIR, UUID.randomUUID().toString() + "." + ext));
            String size = imageEntity.getSize();
            int width = 0;
            if(size.contains("x")){
                width = Integer.valueOf(size.substring(0, size.indexOf("x")));
            }else if(size.contains("X")){
                width = Integer.valueOf(size.substring(0, size.indexOf("X")));
            }else{
                width = Integer.valueOf(size);
            }
            resize(pngFile, resizeFile, width, width, ext);
    
            log.info("保存上传图片修改后的尺寸{}, 到本地:{}", size, fullName);
    
            //png/jpg 转 ico
            String icoPath = "D:/upload/" + UUID.randomUUID().toString() + ".ico";
            Image4j.Convert(resizeFile.getAbsolutePath(), icoPath);
            log.info("上传图片转换为ico到本地{}", icoPath);
    
            String base64 = Base64.getEncoder().encodeToString(IOUtils.toByteArray(new FileInputStream(icoPath)));
    
            //删除
            pngFile.delete();
            resizeFile.delete();
            new File(icoPath).delete();
            log.info("删除本地保存的上传图片");
            log.info("删除本地保存的修改后的尺寸的上传图片");
            log.info("删除本地保存的ico");
    
            return base64;
        }
    
        /**
         * 图片尺寸修改
         * @param originalFile
         * @param resizedFile
         * @param newWidth
         * @param newHeight
         * @param formatName
         */
        public static void resize(File originalFile, File resizedFile, int newWidth, int newHeight, String formatName) {
            try {
                BufferedImage inputBufImage = ImageIO.read(originalFile);
                ResampleOp resampleOp = new ResampleOp(newWidth, newHeight);// 转换
                resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Oversharpened);
                BufferedImage rescaledTomato = resampleOp.filter(inputBufImage,null);
                ImageIO.write(rescaledTomato, formatName, resizedFile);
            } catch (IOException e) {
                throw new BizException("图片尺寸缩放异常", e);
            }
        }
    }
    
    

    ImageControler类

    @Slf4j
    @Validated
    @RestController
    @RequestMapping("/img")
    public class ImageController {
        @Autowired
        private ImageService imageService;
    
        /**
         * png/jpg转为ico图标
         *
         * @param file
         * @param imageEntity
         * @return
         */
        @PostMapping("/upload")
        public RetResult<ContentVo> upload(@RequestParam MultipartFile file, ImageEntity imageEntity) {
            if (file.isEmpty()) {
                throw new BizException("上传文件为空");
            }
            String targetFileName = file.getOriginalFilename();
            if (!"jpg".equalsIgnoreCase(FilenameUtils.getExtension(targetFileName)) && !"png".equalsIgnoreCase(FilenameUtils.getExtension(targetFileName))) {
                throw new BizException("上传图片格式必须是jpg或者png");
            }
            try {
                String base64 = imageService.imgToICO(file, imageEntity);
                return RetModel.ok().setData(ViewObject.content(base64));
            } catch (IOException e) {
                throw new BizException("上传文件异常");
            }
        }
    
    
        /**
         * 图片下载
         *
         * @param response
         * @param filePath
         * @throws IOException
         */
        @GetMapping("/download")
        public void download(HttpServletResponse response, @NotBlank(message = "文件路径不能为空") String filePath) throws IOException {
            InputStream inputStream = new FileInputStream(filePath);
            OutputStream outputStream = response.getOutputStream();
            byte[] bytes = IOUtils.toByteArray(inputStream);
            outputStream.write(bytes);
        }
    }
    
    

    3. 前端测试

    上传下载文件表单

     <div id="form">
                        <form name="submitForm">
                            <p>
                                <strong>目标尺寸:</strong>
                                <select style="width: 200px;" name="size" class="btn btn-info" type="button">
                                    <option selected="selected" value="16" class="btn btn-default" type="button">16px &nbsp;x&nbsp; 16px</option>
                                    <option value="32" class="btn btn-success" type="button">32px &nbsp;x&nbsp; 32px</option>
                                    <option value="48" class="btn btn-success" type="button">48px &nbsp;x&nbsp; 48px</option>
                                    <option value="64" class="btn btn-success" type="button">64px &nbsp;x&nbsp; 64px</option>
                                    <option value="128" class="btn btn-success" type="button">128px &nbsp;x&nbsp; 128px</option>
                                    <option value="256" class="btn btn-success" type="button">256px &nbsp;x&nbsp; 256px</option>
                                    <option value="512" class="btn btn-success" type="button">512px &nbsp;x&nbsp; 512px</option>
                                </select>
                            </p>
                            <p>
                                <strong>原始图片(不超过200kb):</strong>
                                <input name="file" size="40" type="file" class="btn btn-info" width="200px;" />
                            </p><hr>
                            <input style="font-weight: bold;" type="button" onclick="submitFormFn()" value="点击制作ICO" class="btn btn-danger"/>
                        </form>
                    </div>
                <div id="showDiv" style="display: none;" class="text-center">
            <img id="showImg" /> &nbsp;&nbsp;&nbsp;
            <a href="#" onclick="downloadFn()">点击下载ico</a>
        </div>
    
    

    js脚本

        var base64 = "";
    
        function submitFormFn(){
            if($('input[name=file]')[0].files[0] === undefined){
                return
            }
            var formData = new FormData();
            formData.append("size", $('[name=size]').find("option:selected").val());
            formData.append("file", $('input[name=file]')[0].files[0]);
            $.ajax({
                url: "http://localhost:8080/img/upload",
                type: "POST",
                data: formData,
                contentType: false, //必须false才会自动加上正确的Content-Type
                processData: false, // 必须false才会避开jQuery对 formdata 的默认处理,  XMLHttpRequest会对 formdata 进行正确的处理
                dataType: "json",
                success: function (data) {
                    if (data.retCode === '0000') {
                        base64 = data.result.content
                        $('#showImg').prop('src', "data:image/png;base64," + base64)
                        $('#showDiv').show()
                    }
                },
                error: function () {
                    alert("上传失败!");
                }
            });
        }
    
        //a标签方式下载
        function downloadFn(){
            if(!base64){
                return
            }
            let a = document.createElement('a');
            a.download = new Date().getTime() + '.ico';
            a.href = "data:image/png;base64," + base64;
            $("body").append(a);    // 修复firefox中无法触发click
            a.click();
            $(a).remove();
    
        }
    
    更多相关内容
  • 全能图片格式转换器(支持PNG转ICO图标,支持256或512像素,或者更大像素的转换)
  • PNG转ICO 图标格式互工具 2.1.0.0 绿色版
  • PNG-ICO 图标格式互工具
  • 全规格PNG转ICO工具是一款png转ico工具。该软件简单实用,效率也是非常之高。需要的朋友们可以下载试试! 软件说明 全规格PNG转ICO工具支持一键把png图片转换成多尺寸ICO文件,以适应系统各种环境,生成为最佳图标...
  • pngicopng转换为Windows ico格式 笔译 介绍 安装 npm install --save-dev png-to-ico 用法 npm脚本: png-to-ico electron.png > app.ico 编程用法: const fs = require ( 'fs' ) ; const pngToIco = ...
  • PNG转ICO.JPG转ICO.BMP转ICO.TGA转ICO工具 支持 win7 xp win10
  • png转ico在线工具

    2021-04-12 09:58:40
    我们都知道同类属性的格式之间是可以转换的,比如:视频格式转换(用狸窝)、ico转png可以实现吗?答案是肯定的,下面小编教就你怎么把ico格式转换成png格式。好玩:照片换背景(简单)如何去掉歌曲原唱视频转GIF图片...

    一打开电脑就看到的桌面图标,打开的每一个百度网页,在搜索栏前面都会有一个脚丫形状

    dd9638c4b2f16aee871e07f5770e7d39.png的图标,它们叫做ico,Icon file的缩写,是Windows的图标文件格式的一种。我们都知道同类属性的格式之间是可以转换的,比如:视频格式转换(用狸窝

    7db596200026da60523a946d00a64058.gif)、ico转png可以实现吗?答案是肯定的,下面小编教就你怎么把ico格式转换成png格式。好玩: 照片换背景(简单)  如何去掉歌曲原唱  视频转GIF图片

    升级狸窝VIP有什么好处?      www.leawo.cn/space-1-do-thread-id-28884.html

    小知识拓展:ico是可以存储单个图案、多尺寸、多色板的图标文件,具有明确指代含义的计算机图形。其中桌面图标是软件标识,界面中的图标是功能标识。它有一套标准的大小和属性格式,且通常是小尺寸的。每个图标都含有多张相同显示内容的图片,每一张图片具有不同的尺寸和发色数,一个图标就是一套相似的图片。

    a73d711e4c9331f4a97070449ae49632.png     

    df5242689223cccd21f64bff84cebef2.png

    (ico图标展示图)

    要想把ico格式转换成png格式,可以用photoshop,简称:ps。运行ps,然后打开你已经准备好的ico格式的图标,你可以选择一个或者多个一起在ps中打开。ps是一款好用的处理图片的软件,如果你的电脑上没有,可以到这里来下载(ps下载地址:www.leawo.cn/ND_upload.php?do=info&id=510)

    ae4b708a8b3d682a38f62b2810cb5fdd.png

    这里以打开一个为例,选中一个图标,点击打开,此时会弹出一个对话窗口,选择如下图所示选项,是像素为128*128的意思,你也可以选择其他的选项来尝试一下有什么不同。

    a0b7b42fc4178a0767191e0b07df04e4.png

    选择之后,然后点击OK按钮。

    02fa8750a6dadcc90f08a07e3cbf781e.png

    图标在ps中打开之后看到的是一个像素为128*128大小的背景透明的图片。

    806caac8a40729f1a0ef3b9f7422b39d.png

    此时如果觉得图片太小的话,还可以改变图像大小,点击菜单栏的图像,在下拉菜单中选择图像大小选项按钮,就会弹出一个对话框,在里面输入你想要图像大小即可,也可以按快捷键:Ctrl+Alt+I,这里以输入宽度:500,长度:500为例:

    09a15cf9e40849d9d96346806c657ec5.png

    点击确定后你会看到图像变大了,如果还不满意的话,可以继续修改。

    7baebcbcd63e2b5316a61797bef1f81f.png

    最后一步点击菜单栏中的文件,在下拉菜单中选择储存为选项按钮,也可以按快捷键:Ctrl+Shift+S,在弹出的对话框中选择PNG格式,再点击确定,接着弹出的一个小对话框也直接点击确定(记得你储存输出图片的格式位置哦)。

    d65dc3190b44c3010dbb998d16ab64c1.png

    bfef124c47d5f9d8e809138900c6f3e9.png

    这样就得到了一张背景透明的png图片了,相同的道理,用相同的做法也可以把ico转换为gif/ipg等格式的图片,你学会了吗,其实就像

    ico图标制作软件 gif/jpg/png怎么转换成ico图标:

    【小段子】有一女,27岁。自从那天早上起床没穿衣服走出卧室门,

    被对面站在阳台上看风景的大爷看到后,大爷从此每天早上站

    在他家的阳台等她起床.......大爷,这是条不归路啊……

    展开全文
  • 在日常的生活和办公中,如果小伙伴想要将png图片转换成ico图标的话,可以使用在线图片处理工具,比如这款在线png转ico(https://www.yasuotu.com/png-to-ico)图标工具—压缩图,方便快捷,无需下载安装,一键即可...

    在日常的生活和办公中,如果小伙伴想要将png图片转换成ico图标的话,可以使用在线图片处理工具,比如这款在线png转icohttps://www.yasuotu.com/png-to-ico)图标工具—压缩图,方便快捷,无需下载安装,一键即可完成ico在线转换。下面,小编就给大家详细的讲解一下这款图片ico转换工具是如何操作的吧!
    一、打开压缩图网站,点击所有功能-png转ico功能,点击选择文件进行图片上传。

     二、点击选择文件上传图片(注意:原图宽高不一致时选择尺寸会造成画面变形,可先使用压缩图图片压缩指定大小修改原图尺寸),然后选择图标尺寸,调整后开始转换。

     三、经过系统处理后,点击保存图片,下载到电脑,上传使用即可。

     以上就是“png转ico图标”的全部操作流程,小伙伴可以利用这款工具进行在线png转ico,ico转jpg,ico转png等操作,经常制作ico图标的小伙伴,可以收藏网站,再次使用时就会很方便啦!

    展开全文
  • NG-ICO 图标格式互工具 使用起来非常方便 只需要一拖一拉就行~ 使用注意:目录下有AveIcon.ini配置文件 [Options] 128=1 96=0 72=0 64=0 48=0 32=0 24=0 16=0 数字为0则不生成该分辨率文件,数字改为1则为生成,...
  • png转ico工具

    2014-07-09 11:14:01
    png转ico工具 支持透明 支持批量 支持命令行
  • png转ico.rar

    2021-12-03 10:10:28
    png转ico图标
  • png转ICO图标

    2018-01-01 23:52:18
    png转ICO图标,将要转换的文件放在PNG文件下,双击EXE文件,自动生成在ico文件内
  • ico工具.zip,PNG转ICO

    2020-07-23 14:47:21
    制作ICO工具 通过多个图片制作ICO工具
  • ico是一种常见的图标格式,常用于系统图标、文件夹图标等,如果需要将png图片转换成ico格式,小伙伴表示有没有一款不用下载安装软件,轻松在线png转ico?不要着急,今天小编给大家安利一款图片ico转换工具,只需简单...

    怎样将png转ico(https://www.yasuotu.com/png-to-ico)?ico是一种常见的图标格式,常用于系统图标、文件夹图标等,如果需要将png图片转换成ico格式,小伙伴表示有没有一款不用下载安装软件,轻松在线png转ico?不要着急,今天小编给大家安利一款图片ico转换工具,只需简单操作三步,就可以生成ico图标了。下面,小编将png转ico的方法给大家介绍一下一起来学习下吧!
    一、首先,我们打开压缩图网站,点击所有功能-png转ico功能,点击选择文件进行图片上传。

     二、点击选择文件上传图片(注意:原图宽高不一致时选择尺寸会造成画面变形,可先使用压缩图图片压缩指定大小修改原图尺寸),然后选择图标尺寸,调整后开始转换。

     三、经过系统处理后,点击保存图片,下载到电脑,上传使用即可。

     这就是png转ico的操作步骤小编已经给大家介绍完毕了,通过以上的操作方法小伙伴就可以轻松将png转ico,是不是非常简单好用呢。小编还发现压缩图网站还可以jpg转ico,ico转jpg,ico转png等功能,基本满足我们小伙伴对ico格式的需求,如果觉得不错,记得给小编点赞鼓励一下哦!

    展开全文
  • PNG转ICO.rar

    2019-06-04 23:53:55
    PNG转ICO
  • png转ico图片工具

    2009-09-10 09:43:01
    傻瓜化得工具 傻瓜化得工具 傻瓜化得工具 傻瓜化得工具
  • PNG转ICO-在线转换

    千次阅读 2021-02-10 11:18:22
    在线工具:PNG转ICO-在线转换图表文件 https://www.aconvert.com/cn/icon/png-to-ico/
  • PNG转ICO在线转换

    2020-07-23 09:53:35
    网址:https://www.easyicon.net/covert/
  • png转ico(可叠加,一份ico文件包含多个icon图) ico转png 可用于Python打包
  • python批量png转ico

    2021-01-20 18:27:36
    Python 批量 png ico 一、前言: 首先说一下ico文件的作用:ico是windows的图标文件格式,可以用于浏览器首段图标显示,也可以用于Windows软件。我的话一般用来美化文件夹图标。比如像这样: 二、思路: ico...
  • png转ico和.ico转.png格式.docx
  • 各中文件互工具,PDF图片 图片PDF NCMMP3 PDFword png转ico 图片文字
  • png转ico

    千次阅读 2016-04-06 16:15:00
    http://pan.baidu.com/s/1kTBPvIv
  • png转换ico

    2008-09-30 22:57:26
    小巧的png转换ico 简单  实用
  • 该工具是使用Python脚本语言编辑,实现日常使用的图片格式如JGP,PNG,GIF等 转换成 ico图标 logo,方便python打包时需用到ico图标
  • PNG转ICO 工具

    2011-11-02 14:08:01
    非常小巧的png转ico工具,可以调整转换大小,从16*16 到256*256,可以自行修改,非常方便
  • PNG转ICO工具

    2013-02-03 17:59:36
    PNG转ICO工具
  • png转换ico.zip

    2020-04-03 16:16:37
    本产品可将格式的图转变为ico 格式
  • png转换ico格式

    千次阅读 2019-04-11 14:46:48
    https://www.easyicon.net/covert/

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,161
精华内容 21,264
关键字:

png转ico

友情链接: dufd98.rar