{"id":19659772,"url":"https://github.com/maicius/photowall","last_synced_at":"2025-10-14T05:07:33.051Z","repository":{"id":43244530,"uuid":"229816121","full_name":"Maicius/PhotoWall","owner":"Maicius","description":"Just sort out the photos and generate the photo wall with one click; Realize the alignment of a large number of photos of any scale without stretching and masking the photos; Completed by JS / CSS only, independent of node or server.只需整理好照片，一键生成照片墙;在不对照片进行拉伸和遮掩的前提下，实现对任意比例的大量照片对齐；单纯由js/css完成，不依赖于node或服务器","archived":false,"fork":false,"pushed_at":"2023-10-03T21:39:30.000Z","size":19011,"stargazers_count":18,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-28T20:46:11.864Z","etag":null,"topics":["gallery","photo","photogallery","photowall"],"latest_commit_sha":null,"homepage":"http://photo.xiaomaidong.com/maicius/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Maicius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-23T20:08:32.000Z","updated_at":"2025-02-03T08:14:25.000Z","dependencies_parsed_at":"2024-11-11T15:45:13.564Z","dependency_job_id":"be64a729-f2d7-4345-90f2-c7d7c317f50c","html_url":"https://github.com/Maicius/PhotoWall","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Maicius/PhotoWall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maicius%2FPhotoWall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maicius%2FPhotoWall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maicius%2FPhotoWall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maicius%2FPhotoWall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Maicius","download_url":"https://codeload.github.com/Maicius/PhotoWall/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maicius%2FPhotoWall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018016,"owners_count":26086237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gallery","photo","photogallery","photowall"],"created_at":"2024-11-11T15:44:20.636Z","updated_at":"2025-10-14T05:07:33.005Z","avatar_url":"https://github.com/Maicius.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PhotoWall\n\n\n![](./resource/image/middle.jpg)\n\n[参考网址：小麦冬年度影集](http://photo.xiaomaidong.com/maicius/)\n\n### 0.特点\n\n- 只需整理好照片，无论多少文件夹、多少照片，一键生成照片墙；\n- 在不对照片进行拉伸和遮掩的前提下，实现对任意比例的大量照片对齐；\n- 自动识别照片子目录，根据照片目录对照片进行分类；\n- 根据照片的命名对照片进行排序和添加标题、描述信息；\n- 通过简易的配置文件（txt）添加大量照片描述、分类描述等额外信息，方便快捷；\n\n### 1.最简易的使用方法\n\n- 1.下载软件（注意区分macOS和windows）\n\n\t\u003e 下载地址一：[百度云密码:tq4y](https://pan.baidu.com/s/1ISn3Wc-jt4ITrejSJlDzfw)\n\n\t\u003e 下载地址二：[github](https://github.com/Maicius/PhotoWall/releases/tag/v1.0)\n\t\n\t\u003e 下载地址三：[小麦冬](http://photo.xiaomaidong.com/downloads/)\n\n- 2.将照片文件夹放到软件根目录下的image目录下（若放在其它路径需要在程序中指定，支持二级目录）\n\n- 3.点击运行程序\n\n\t\u003e 3.1 windows用户点击 “windows用户双击这里自动执行.bat”\n\t\n\t\u003e 3.2 macOS用户打开终端，在终端中进入软件根目录，输入如下指令\n\t\t\n\t\tchmod +x macOS用户请使用终端打开此文件.sh \u0026 ./macOS用户请使用终端打开此文件.sh\n\n- 4.首先会弹出两个黑框显示程序正在运行的信息，若程序显示运行结束浏览器未打开，请手动用浏览器打开index.html （需要联网才能正常显示网页）\n\n### 2.自定义基本信息\n\n- 1.给照片添加标题和简易描述\n\t\n\t修改照片文件名，照片标题和照片描述之间用短横线“-”分割，比如“南京-美丽的南京.jpg”，表示该照片标题为“南京”，照片描述为“美丽的南京”。更多命名细节可以参考4.1小节，如需添加大量描述请参考第3小节。\n\n- 2.修改原始照片路径\n\n\t或许你已经有了专门用于存放照片的文件夹，不想再花时间整理。\n\twindows用户：\n\t\n\t\u003e 1.右键点击“windows用户双击这里自动执行.bat”，选择用记事本打开\n\t\n\t\u003e 2.在文本第一行末尾添加： \n\t\t\n\t\t-image_dir 照片地址\n\t\n\t比如照片地址为“C:\\Users\\maicius\\Pictures”，修改后的命令如下：\n\t\n\t\tstart /wait ImageConvertTool.exe -image_dir \"C:\\Users\\maicius\\Pictures\"\n\t再保存并关闭文件，重新双击该文件即可运行\n\t\n\tmacOS用户的修改过程大致相同\n\n- 3.修改照片的保存地址\n\n\t用单反、手机拍摄的照片往往比较大，在网页上进行加载会非常慢，所以首先需要进行压缩，生成缩略图和用于详细查看的大图。ImageConvertTool.exe其实就是做的这个压缩转换的过程。转换后的照片会默认保存在软件根目录下的image文件夹下。若需要修改保存的地址，和2.2中一样，使用记事本编辑该bat文件，在文本末尾添加一行：\n\t\n\t\t-result_dir 照片地址\n\n### 3.自定义网站、照片信息——photo_info.txt\n\n虽然上面的方法已经能生成照片墙，但是你会发现其中的背景照片、网页标题，都不是你想要的，或者你想添加大量的照片描述，但是在照片标题中不好写。其实这些信息都可以在photo_info.txt中进行自定义。\n\nphoto_info.txt是一个简单的配置文件，为方便用户编辑，因此选择用txt格式。它能配置的具体内容如下：\n\n- 自定义网站导航栏标题、副标题\n- 自定义主页标题\n- 自定义主页背景照片，不限张数\n- 开启情侣纪念日（没错，就是对情侣的照片墙做了优化）\n- 自定义照片分类目录和分类描述\n- 自定义照片标题和照片描述\n\n下面开始介绍如何编写该文件以实现上述功能。resource目录下提供了多个photo_info.txt的编写模板\n编辑中需要遵守以下规范：\n\n- 每一行表示一项配置\n- 以双斜线//开始的行表示注释，是为了帮助用户理解而添加的，程序在解析中会忽视该行\n- 符号#表示分隔符，所以正文编辑中请不要出现该符号\n- 每一行的第一个词是关键词，程序根据该词来对解析后面的内容。程序使用的关键词有以下几个(区分大小写)：\n\t\n\t\tTITLE、BACK、MID、PART、DAYS、root\n\t\t\n- 每一行配置编写的顺序没有严格的规定\n\n#### photo_info.txt编写介绍：\n\n- 自定义网站导航栏、副标题\n\n\t\u003e 格式：TITLE#网站名#副标题\n\n\t\u003e 范例：TITLE#小麦冬#不会骑车的摄影师不是好的程序猿\n\t\n\t\u003e 手机端效果图：![](resource/image/banner.png)\n\t\n- 自定义网页标题\n\n\t\u003e 格式：MID#网页标题\n\t\n\t\u003e 范例：MID#2019年度影集\n\t\n\t\u003e chrome效果图：![](resource/image/bigTitle.jpg)\n\n- 自定义主页背景照片\n\n\t\u003e 格式：BACK#照片路径1#照片路径2#照片路径3#....\n\t\n\t其中照片路径可以是相对地址，也可以是绝对地址。照片不限张数，可以一直加。照片默认是1分钟换一张\n\t\n\t\u003e 范例1：BACK#back/back\\_1.jpg#back/back\\_2.jpg\n\t\n\t\u003e 范例2：BACK#back/back\\_1.jpg#back/back\\_2.jpg#back/back\\_3.jpg#back/back\\_4.jpg\n\t\n- 开启情侣纪念日\n\t\n\t\u003e 格式：DAYS#背景照片#纪念日期\n\t\n\t在填写了纪念日之后，会出现一览计时，计算从该天到现在在一起的天数。如果不填写日期，就不会出现该栏。\n\t\n\t\u003e 范例：DAYS#back/back_5.png#2015/11/09\n\t![](resource/image/days.png)\n\n- 照片的分类标题和描述\n\n\t添加照片时，可以在image目录下建立多个文件夹，每个文件夹表示一个分类。文件夹的标题默认就是分类的名称，在网页展示时，会在该累=类图片的顶部中间显示。若还需要添加副标题或描述，只能在这里进行配置。需要注意的是，这里配置的优先级比文件夹名称的优先级高，就是如果这里的配置会与文件夹名称不一致，会优先使用这里的配置（因为文件夹的名称主要用于排序）\n\t\u003e 格式：PART文件夹名#分类名#分类描述\n\t\n\t\u003e 范例：PART骑行#骑行#回首向来萧瑟处，归去，也无风雨也无晴\n\t\n\t\u003e “PART骑行” 表示该文件夹名叫“骑行”，\n\t\n\t\u003e 效果图：![](resource/image/part.png)\n\t\n\t根目录的默认文件名是root，若是要对根目录进行命名，需要写PARTroot。比如：\n\t\n\t\u003e PARTroot#银杏#金色的秋天\n\n- 照片标题与描述\n\t\n\t与照片分类一样，这里的配置的描述优先级比文件命名高。需要注意的是，对照片的配置信息必须写在分类的后面。\n\t\n\t\u003e 格式：\n\t\t\t\n\t\tPART1文件夹名#分类名#分类描述\n\t\t照片文件名#照片标题#照片描述\n\t\n\t\u003e 范例：\n\t\t\n\t\tPART骑行#骑行#回首向来萧瑟处，归去，也无风雨也无晴\n\t\t0.jpg#Test Title#Test Description 测试描述\n\t\t1.jpg#测试标题#我也不知道该写点啥\n\t\tPART其它#其它#随手拍\n\t\t0.jpg#Test Title#测试描述\n\t\t1.jpg##\n\t\tPARTroot#银杏#金色的秋天\n\t\tIMG_9600.jpg#银杏#一叶知秋\n\t\n\t照片标题若为空，将使用照片的文件名\n\t\t\t\n\n### 4.温馨提示\n\n#### 4.1.整理照片\n\n- 1.推荐的照片命名方法：\n\n\t\u003e [数字][照片标题]-[照片描述].[照片格式]，其中数字用于排序\n\t\n\t\u003e 比如：1南京-美丽的南京.jpg\n\t\n\t上面的命名方式只是推荐，并不是必须，比如以下的方法都是支持的：\n\t\u003e IMG_001.jpg （将直接使用文件名作为照片标题，缺少照片描述）\n\t\n\t\u003e 南京-美丽的南京.jpg (缺少排序数字，将使用python的默认排序)\n\t\n\t支持的图片格式有：\n\t\n\t\u003e jpg、png、JPG、jpeg、JPEG、PNG、bmp、BMP\n\t\n\t如要添加大量描述，可在photo_info.txt中进行配置\n\n- 2.照片位置\n\t\n\t默认的位置为项目根目录下的image文件夹，如要修改位置，在启动程序时指定参数即可。\n\n- 3.照片分类\n\t\n\timage目录下每个子文件夹将被作为一个分类，该分类的标题就是该子文件夹的名字。请不要使用small和middle命名文件夹，因为这处理结果将保存在该文件夹下。\n\t\n\t分类的标题和子标题可以在photo_info.txt中进行配置\n\n### 5.效果图\n\n- 主页，可通过配置文件添加标题\n![](./resource/image/title.jpg)\n- 照片墙，无论照片比例差别多大，都能自动实现对齐\n![](./resource/image/main_page.jpg)\n\n### 6.增值服务\n\n即使你通过上述方法成功建立了照片墙，但是你只能在你自己的电脑上看，只有部署到服务器上才可以让你的朋友们看到！但是，部署服务器对于非IT行业的用户而言简直是噩梦，所以，这里提供**增值服务**，帮大家把照片墙部署到服务器上，并提供网址，方便您分享到朋友圈！\n\n注意，这是增值服务，不是免费的！因为服务器、流量、域名我都是花钱买的.....特别是现在域名注册很严格，你自己搞一套下来可能得两个月。\n\n- 收费标准：\n\n 项目名称| 价格   | 服务范围  \n---|----| ---\n照片墙上线服务 | 168 元/ 月  | 将生成的照片墙打包发给我，我将该程序打包到云服务器并配置，提供域名访问 \n照片预处理服务 | 32 元 / 次  | 您只管把照片发给我，剩下的我来处理 \n照片墙更新服务 | 10 元 / 次 | 每个用户每个月提供三次免费更新服务，超过三次的收取10元一次的费用 \n私人定制服务 | 根据具体需求协商 | 根据您的需求自定义照片墙内容，需要大量修改代码的服务\n\n每个月接收的服务数量将根据服务器、流量情况进行调整，以保证国内用户的正常访问。**若您对网站访问速度不满意，可全额退款**。\n\n作为参考，您可以访问[小麦冬的年度影集](http://photo.xiaomaidong.com/maicius/)\n\n提供的域名，前缀统一为：\n\n[photo.xiaomaidong.com/users/](http://photo.xiaomaidong.com)\n\n(photo.小麦冬的全拼.com/您的用户名)\n\n其中users表示您的用户名\n\n- 交易方式：\n\n1.通过邮件联系：maicius@outlook.com\n\n2.确认可以提供服务后，将照片墙的相关内容通过邮件发送给我，同时提供你想使用的用户名。\n\t\n\u003e 需要打包的内容，5项：\n\t\n\t1.wall.html\n\t2.image文件夹（存储转换后的照片文件，为方便传输，请求原始照片删除）\n\t3.back文件夹 （存储背景图片）\n\t4.image_json.js\n\t5.assets文件夹\n\n3.网站上线，确认可以访问后一小时内通过微信或支付宝付费。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaicius%2Fphotowall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaicius%2Fphotowall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaicius%2Fphotowall/lists"}