基于SharpIco开发图片转ICO工具网站

SharpIcoWeb

项目介绍

SharpIcoWeb是基于SharpIco开发的图片转ICO工具网站,支持上传png、jpg等图片转换为多尺寸的Ico图片文件。采用前后端分离技术。

后端接口使用 .NET Minimal API开发,够轻量。

预览地址

https://ico.pljzy.top/

应用场景

  • 网站Favicon
  • 软件图标 ️
  • 个性化文件夹标识
<link rel="icon" type="image/x-icon" href="/logo.ico" />

核心技术

Vite+Vue+Element-Plus 极速的开发服务器和高效的生产构建 ️ → 纯文件操作(无需SQLite/MySQL)
️.NET 9 MiniAPI 轻量级API开发,处理图像转换业务逻辑 后端使用的强大图像处理库,实现PNG/JPG转ICO
可容器化(Docker 支持) + 响应式设计(适配移动端)

后续更新

  • 不同尺寸ICO,可分别生成ICO文件。
  • 前端显示ICO文件图标数量数据、大小、偏移等数据。
  • 批量转换功能。

快速开始

Docker部署

注意注释部分配置可能需要根据实际情况修改

Docker CLI

docker-compose up --build -d

default.conf

server {
listen 5173; # 配置端口
server_name 0.0.0.0; # 修改为docker服务宿主机的ip # 设置允许的最大请求体大小(例如 100MB)
client_max_body_size 100M; location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
} location /api {
proxy_pass http://backend:5235; # Docker 内部网络
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

Docker Compose

version: '3.8'

services:
frontend:
build:
context: ./sharp-ico-vue # 指向前端目录
dockerfile: Dockerfile
ports:
- "5173:5173" # 前端映射到宿主机的5173端口
depends_on:
- backend backend:
build:
context: . # 指向后端目录
dockerfile: Dockerfile
ports:
- "5235:5235" # 后端端口

手动部署

clone

git clone https://github.com/ZyPLJ/SharpIcoWeb.git

后端运行

cd SharpIcoWeb

dotnet build -c Release

dotnet run

前端运行

cd ..

cd sharp-ico-vue

npm install

npm run dev

如何使用

前后端项目运行或部署后,打开运行后网址。

选择需要生成的ICO图表尺寸,可多选

上传图片文件,点击转换。

开发指南

项目结构

sharp-ico/
├── SharpIco/ # 图标转换类库
│ ├── SharpIco.csproj
├── SharpIcoWeb/ # 后端Api项目
│ ├── SharpIcoWeb.csproj
├── sharp-ico-vue # 前端项目

开发环境

  • .Net 9
  • Node.js 20.19+
  • Vue3

运行项目

后端

dotnet build -c Release

dotnet run

前端

npm install

npm run dev

相关链接

基于SharpIco开发图片转ICO工具网站的更多相关文章

  1. 基于WebImage的图片上传工具类

    支持缩略图和水印. using System; using System.IO; using System.Linq; using System.Web; using System.Web.Helpe ...

  2. 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)

    注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...

  3. 基于Vue开发的门户网站展示和后台数据管理系统

    基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ...

  4. 基于.NetCore开发博客项目 StarBlog - (17) 自动下载文章里的外部图片

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  5. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发         之前提到过, ...

  6. 基于JavaMail开发邮件发送器工具类

    基于JavaMail开发邮件发送器工具类 在开发当中肯定会碰到利用Java调用邮件服务器的服务发送邮件的情况,比如账号激活.找回密码等功能.本人之前也碰到多次这样需求,为此特意将功能封装成一个简单易用 ...

  7. 基于.NetCore开发博客项目 StarBlog - (10) 图片瀑布流

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  8. 7个基于Linux命令行的文件下载和网站浏览工具

    7个基于Linux命令行的文件下载和网站浏览工具 时间:2015-06-01 09:36来源:linux.cn 编辑:linux.cn 点击: 2282 次 Linux命令行是GNU/Linux中最神 ...

  9. 后台管理-基于 Bootstrap 开发的网站后台管理面板

    Bootstrap 开发框架真的很强大,今天推荐几个非常不错的基于 Bootstrap 开发的网站后台管理面板,全部都是响应式布局,细节做得都很不错.可以搜索keenthemes. Metronic ...

  10. TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具

    怀着鸡动的心情跟大家介绍一款国产开源运维软件TriAquae,轻松帮你搞定大部分运维工作!TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具,可以允许用户通过一台控制端管理上千 ...

随机推荐

  1. 英语面试-Behavioral Question - first part

    前言 希望我总结的行为面试问题和答案能够给大家帮助. 学习方法:每个问题都有三部分组成. 第一部分是语料积累,这里是根据视频中的内容总结而来: 第二部分是中文描述,这里主要根据我自己的经历结合问题做出 ...

  2. soapUI接口关联教程

    1.新建项目结构 步骤如下: 打开soapUI Pro,新建工作空间(点击File-New Workspace) 选中Test右键点击New Project 选中AlloTest右键点击New Tes ...

  3. nim 语言使用 concept 实现 c# 的interface

    nim简介 nim语言兼顾C#等高级语言语义表达的丰富性,又有 C 语言的灵活性,以及超强的性能.下面是中文站对他的总结,我抄下来: Nim 是一种静态类型的.编译型.系统编程语言.它结合了其他成熟语 ...

  4. base的含义及使用及与this的区别

    C#中base关键字的几种用法 - bobob - 博客园 (cnblogs.com) C#构造函数里的base和this的区别 - 傲世狂枫 - 博客园 (cnblogs.com) 我的理解 1.在 ...

  5. Python3循环结构(二) while循环

    Python3 while循环 当循环次数无界时通常会使用while循环. 1.使用while循环输出九九乘法表 i=1 while i < 10: j = 1 while j < i + ...

  6. 35.2K star!双链笔记+知识图谱+本地优先,这款开源知识管理神器绝了!

    一款融合「双链笔记+知识图谱+本地优先」理念的开源知识管理工具,支持Markdown/Org-mode双格式,打造你的第二大脑! 项目介绍 "Logseq 是一个注重隐私.开源的知识管理平台 ...

  7. Java 线程的常用操作方法

    目录 线程命名和取得 线程的休眠 线程优先级(priority) 线程命名和取得 如果想要进行线程名称的操作,可以使用Thread类的如下方法: 构造方法:public Thread(Runnable ...

  8. 《原型设计工具深度解析:Axure到墨刀的实战指南》

    原型设计工具深度解析:从Axure到墨刀的实战应用 项目背景 "Shou学"作为信息学院本科必修课指南平台,需通过高保真原型实现课程导航.知识点拆解.习题模拟等核心功能.本文结合& ...

  9. 【HUST】网络攻防实践|5_二进制文件补丁技术|实验三 热补丁

    文章目录 实验要求 实验过程 1. 64位Ubuntu下先安装32位库 2. 利用Preload Hook实现热补丁修补 3. 利用系统调用`ptrace`对运行状态的程序进行hook 3.1 编写补 ...

  10. FunProxy - 使用 Rust 构建跨平台全链路测试抓包代理工具

    作者:vivo 互联网大前端团队- Song Jiachao 在软件开发过程中,软件测试对于保障软件质量和用户满意度起着关键作用.为最大程度上提升软件品质,我们积极开展全链路测试实践,打造了用Rust ...