gifski:基于 pngquant 的高质量 GIF 编码器——安装、CLI 实战与源码级原理解析
图像处理音视频【免费下载链接】gifskiGIF encoder based on libimagequant (pngquant). Squeezes maximum possible quality from the awful GIF format.项目地址https://gitcode.com/gh_mirrors/gif/gifski点击查看免费下载导读本文以 gifski 官方 README.md 为主体系统讲解这款基于 pngquant 的高质量 GIF 编码器的安装方式、命令行实战用法、文件体积优化技巧并结合仓库源码src/lib.rs、src/bin/gifski.rs、src/c_api.rs、gifski.h 等深入剖析其「跨帧调色板 时域抖动 多线程编码管线」的实现原理。读完本文你将能够熟练地用 gifski 从视频或 PNG 帧序列制作 GIF掌握--quality、--lossy-quality、--motion-quality等参数背后的真实作用机制并具备将其作为 C 库集成进其他应用的能力。gifski 是什么gifski 是一个基于 pngquant 的高质量 GIF 编码器Highest-quality GIF encoder based on pngquant。它把视频帧转换为 GIF 动画充分利用 pngquant 的高级特性跨帧调色板cross-frame palettes调色板不再局限于单帧而是跨越多个帧联合优化分配让每帧可用的颜色远多于传统 GIF 编码器时域抖动temporal dithering在时间维度上分散量化误差使动画看起来更平滑产出每帧数千种颜色的 GIF 动画在 GIF 格式本身的限制下逼近最高视觉质量。gifski 有两种交付形态一是开箱即用的 CLI 命令行工具二是可以编译为C 库通过 gifski.h 暴露 API方便无缝集成到其他应用中。从 src/lib.rs 可以确认其核心编码设置Settings结构体包含宽高限制、质量1–100推荐 50–100建议 100、快速模式与循环方式等字段默认值为quality: 100、无限循环src/lib.rs。安装与获取gifski 的安装有三条途径对应 README.md 的 Download and install 一节1. 预编译可执行文件前往项目 releases 页面下载对应平台的预编译二进制即可README 中注明该页面提供可执行文件。2. HomebrewmacOS / Linux如果你安装了 Homebrew直接执行brew install gifski3. 从源码 / crates.io 安装如果你有 rustup 安装的 Rust 工具链可以一键安装cargo install gifski注意README 要求 Rust 1.63而当前仓库 Cargo.toml 中rust-version 1.74、edition 2021且项目版本为 1.33.0。若编译时遇到 unstable 特性相关报错请先运行rustup update升级工具链。4. 从源码构建# 安装 Rustvia rustup # 克隆仓库 git clone https://gitcode.com/gh_mirrors/gif/gifski cd gifski # 发布构建产物在 ./target/release cargo build --release构建后 CLI 可执行文件位于./target/release/gifski。注意 Cargo.toml 中[[bin]]声明了name gifski且required-features [binary]——default [gifsicle, binary]因此默认cargo build会带上 CLI 所需的全部依赖clap 参数解析、y4m、lodepng、进度条、通配符展开等。命令行快速上手完整的参数体系README 提示 Seegifski --helpfor more options。我们在 src/bin/gifski.rs 中可以读到用 clap 定义的全部参数这里整理成完整的参考表参数简写默认值含义与取值范围--output a.gif-o必填输出文件路径-表示写入 stdout--fps num-r20动画帧率。PNG 输入时表示播放速度所有帧保留视频输入时按该恒定帧率重采样丢帧/复制帧。范围 0 fps ≤ 100浏览器最多支持 50fps超过会告警--fast-forward x—1视频播放速度倍率范围 0 x ≤ 1000仅对视频有意义--fast—关编码快约 50%但质量损失约 10% 且文件更大--extra—关编码慢约 50%但质量略好约 1%通常文件更大与--fast互斥--quality 1-100-Q90整体质量降低可减小文件体积--motion-quality 1-100—跟随 quality时域去噪强度越低越削弱运动细节--lossy-quality 1-100—跟随 qualitygifsicle 有损 LZW 压缩强度越低噪点/条纹越多但文件越小--width px-W自动最大宽度默认动画限制在约 800×600--height px-H自动最大高度同时设置宽高时会拉伸不保持宽高比--no-sort—关严格按命令行给出的文件顺序不做自然排序--quiet-q关控制台不输出任何内容--repeat num—0循环次数-1不循环0永远循环正数表示重复次数--bounce—关让动画先正向再反向播放--fixed-color RGBHEX—无调色板中始终保留的固定颜色如#123456可多次指定--matte RGBHEX—无半透明像素混合到该背景色位置参数FILES接受多个 PNG 图像文件、一个.y4m文件若编译了videofeature也可直接接受一个 ffmpeg 支持的视频文件src/bin/gifski.rs。CLI 还做了一系列贴心校验src/bin/gifski.rsquality 20会警告效果很差、fps 50提示浏览器上限、拒绝把 JPEG 作为输入JPEG 的压缩伪影和色彩空间对调色板压缩极为不利、对单个 PNG/JPEG 输入报 not enough to make an animation、对输入 GIF 提示改用 PNG 帧以保持质量src/bin/gifski.rs。从视频制作 GIFffmpeg 管道直传如果你安装了 ffmpeg最优雅的方式是把视频以 YUV4MPEG2 流直接管道给 gifski避免中间落盘庞大的中间文件ffmpeg -i video.mp4 -f yuv4mpegpipe - | gifski -o anim.gif -把上面命令中的video.mp4替换成你实际的视频路径即可。几个要点命令末尾的-告诉 gifski 从标准输入读取src/bin/gifski.rs 将输入路径-映射为stdin的 BufReader。直接把.y4m文件作为输入也可以但这类文件体积巨大通常不值得落盘。gifski 会在输入分辨率对 GIF 来说过高时自动缩小画面。从源码 src/lib.rs 的dimensions_for_image可见当用户未指定宽高时按面积因子把画面缩到约 800×600 以内。如果你能容忍更大的文件可以用--width1280显式放宽限制。从 PNG 帧序列制作 GIF除了视频一个装满 PNG 帧的目录也可以直接作为输入。你可以从任意动画软件导出帧也可以先用 ffmpeg 导出ffmpeg -i video.webm frame%04d.png然后从帧生成 GIFgifski -o anim.gif frame*.png注意事项*是 shell 的通配符把它放进引号*里不会展开命令会失效。gifski 自己也通过wildcrate 做了通配符展开src/bin/gifski.rs若模式匹配不到任何文件会给出明确提示src/bin/gifski.rs。默认会按自然排序处理输入文件natord::compare见 src/bin/gifski.rs这样frame1.png, frame2.png, ..., frame10.png不会被排成frame1, frame10, frame2想严格按命令行顺序则加--no-sort。用-W width可以调整帧尺寸。如果输入曾经用有损视频编码器编码过强烈建议至少把帧缩小一半以掩盖压缩伪影、抵消视频编码器所做的色度子采样chroma subsampling。控制动画速度用-r/--fpsPNG 输入时所有帧保留、只决定速度视频输入时--fast-forward可倍速播放。从 src/bin/png.rs 可以看到 PNG 帧的 PTS 计算方式第i帧的时间戳为i / fps逐帧送入Collector::add_frame_png_file。缩小 GIF 文件体积的实战技巧README 明确提醒Expect to lose a lot of quality for little gain. GIF just isnt that good at compressing, no matter how much you compromise.GIF 本身压缩能力有限期望值要放低。在此基础上按优先级依次尝试1. 先缩小画幅--width/--height把动画做得更小是效果最显著的手段。2. 再降整体质量--quality80或更低整体质量参数影响量化和帧差判断等多个环节src/lib.rs 的color_quality会按quality * 4/3放大后参与量化quality 50时还会直接限制最大颜色数见 src/lib.rs。3. 独立微调两个子参数--lossy-quality60越低越噪/颗粒感越重但文件更小。它控制 gifsicle 的有损 LZW压缩强度依赖gifsiclefeature见 Cargo.toml 与 src/gifsicle.rs。源码 src/lib.rs 给出了损失量换算公式((100/5 - lossy/5)^1.8 取整 10) * 10lossy 100时为 0无损。--motion-quality60越低越容易出现运动区域的拖影smearing/色带banding但文件更小。它控制时域去噪器 src/denoise.rs 的灵敏度——Denoiser::new中阈值threshold (55 - quality/2)^2src/denoise.rs去噪器带 5 帧前瞻LOOKAHEAD 5并对像素做中值滤波把「短暂闪烁、转瞬即逝」的细节从动画里抹掉从而减少需要保留的颜色。4. 用估算值逼近目标文件大小如果需要让 GIF 适配一个预定文件大小只能对不同尺寸和质量组合反复试验。压缩过程中命令行工具会显示估计的总文件大小进度条中的 xxKB/MB GIF; Frame 字样其实现见 src/bin/gifski.rs按已写入字节数bytes * total / frames推算总大小并对估算值做平滑。请牢记该估计非常粗略仅作参考。5. 其他可用参数--fast赶时间时快 50%代价是质量与体积--extra追求极致质量时慢 50%。--repeat控制循环-1 不循环 / 0 永远 / n 次。--fixed-color #RGBHEX调色板中永久保留品牌色、标志色等关键颜色最多 255 个需为透明度预留一个索引见 src/lib.rs。--matte #RGBHEX为半透明像素指定背景色进行混合避免 GIF 透明抖动带来的毛边。编码器内部原理多线程流水线与跨帧调色板gifski 之所以质量高得益于 src/lib.rs 中精心设计的多线程编码流水线。Writer::write_innersrc/lib.rs依次启动 5 个线程阶段resize 线程make_resize解码 PNGlodepng或直接消费 RGBA 像素 → 按Settings缩放 → 生成模糊版本用于去噪半透明边缘会做有序抖动二值化dither_imagesrc/lib.rs让透明度看起来更干净diff 线程make_diffs把 5 帧前瞻的去噪器src/denoise.rs结果转换为重要性图importance map——区分「长时间停留的重要像素」与「一闪而过的噪声像素」quantize 线程quantize_frames调用 imagequantpngquant 的 Rust 版按重要性图跨帧联合量化调色板。注意 src/lib.rs第一帧质量强制 100the first frame is too important to ruin it后续帧才允许按color_quality打折相同帧会被跳过src/lib.rsremap 线程remap_frames把上一帧画面作为背景将量化结果映射回像素并裁掉与背景相同的边缘区域trim_imagesrc/lib.rs减少每帧需要编码的像素LZW 编码线程write_framesRust 自研 GIF 写入器src/encoderust.rs计算每帧 delay(end_pts*100).round()钳制在 2–30000 个 1/100 秒单位见 src/lib.rs可选接入 gifsicle 有损 LZW。跨帧调色板的另一个细节dithering_levelsrc/lib.rs会在启用有损 LZW 时自动降低抖动强度因为 LZW 有损压缩自带抖动输入不必再那么嘈杂避免「双重噪声」。作为 C 库集成到其他应用gifski 的[lib]目标声明了lib、staticlib、cdylib三种 crate 类型Cargo.toml因此可以编译成静态库.a或动态库.so/.dylib/.dll。C API 的完整定义见仓库根目录的 gifski.h实现位于 src/c_api.rs。构建静态库rustup update cargo build --release链接target/release/libgifski.a。使用时请遵守 LICENSEAGPL-3.0-or-later。核心 C API 一览初始化gifski_new(const GifskiSettings *settings)GifskiSettings含width、height、quality1–100实用范围 50–100推荐 90、fast、repeat负数为不循环0 为无限循环正数为次数见 gifski.h前置设置gifski_set_motion_quality、gifski_set_lossy_quality、gifski_set_extra_effort、gifski_add_fixed_color都必须在gifski_new之后、添加任何帧之前调用输出gifski_set_file_output(handle, file.gif)或gifski_set_write_callback把输出交给自己的回调任何 buffer/网络流都可以添加帧gifski_add_frame_rgba首选sRGB、alpha 在最后、gifski_add_frame_rgba_stride带行字节数、gifski_add_frame_argb、gifski_add_frame_rgb、gifski_add_frame_png_file。frame_number从 0 开始可乱序提交乱序帧会占用内存缓冲PTS 为秒第一帧应从 0 开始若大于 0 会被用作最后一帧的延迟进度与错误gifski_set_progress_callback每输入帧回调一次返回 0 可取消编码、gifski_set_error_message_callback收尾gifski_finish(g)——停止接收帧、阻塞等待写入完成并返回最终状态必须调用否则泄漏内存gifski.h。错误码枚举GifskiError从GIFSKI_OK 0开始覆盖 NULL 参数、非法状态、量化失败、I/O 各类错误与用户取消GIFSKI_ABORTED等gifski.h。最小 C 示例取自 gifski.h与 src/c_api.rs 文档一致gifski *g gifski_new((GifskiSettings){ .quality 90, }); gifski_set_file_output(g, file.gif); for(int i0; i frames; i) { int res gifski_add_frame_rgba(g, i, width, height, buffer, 5); if (res ! GIFSKI_OK) break; } int res gifski_finish(g); if (res ! GIFSKI_OK) return;要点在循环里以最快速度提交帧是安全且高效的因为gifski_add_frame_*会阻塞等待之前的帧被写完但务必先调用gifski_set_file_output或gifski_set_write_callback否则可能死锁。取消处理的方法是让进度回调返回 0然后调用gifski_finish()取消与gifski_finish返回之间写回调仍可能被调用。Rust 库 API若在 Rust 项目中使用直接依赖 gifski crategifski::new(Settings)返回(Collector, Writer)对src/lib.rsCollector负责喂帧add_frame_rgba/add_frame_png_file/add_frame_png_data见 src/collector.rsWriter负责写盘两者必须分别在两个线程使用且只有 drop 掉 Collector 后 Writer 才会结束。完整示例见 src/lib.rs 的文档注释。C 动态库与发行版打包cargo-c如果要做成系统动态库并生成 pkg-config 文件构建过程使用cargo-crustup update cargo install cargo-c # 构建 cargo cbuild --prefix/usr --release # 安装 cargo cinstall --prefix/usr --release --destdirpkgrootcbuild可以省略——cinstall在尚未构建时会自动触发构建。打包时 C 头文件 gifski.h 的安装规则在 Cargo.toml 中声明capifeature 为 cargo-c 内部使用Cargo.toml。内置视频解码支持可选 featuregifski 可选地支持直接解码视频但依赖 ffmpeg 6.x安装依赖可能非常困难因此默认不启用。若需要安装ffmpeg与libclang且 C 头文件位于系统默认 include 路径。Linux 上通常需要libavformat-dev、libavfilter-dev、libavdevice-dev、libclang-dev、clang等包macOS/Windows 上安装这些依赖可能耗费数小时README 明确表示这类环境问题无法提供帮助。交叉编译时可尝试取消 Cargo.toml 末尾[patch.crates-io]段的注释其中包含一些针对 ffmpeg-sys 的实验性修复。编译cargo build --release --featuresvideo # 或从源码静态构建 ffmpeg需要 C 编译器与 ffmpeg 的全部源码依赖 cargo build --release --featuresvideo-static对应的 feature 定义见 Cargo.tomlvideo动态链接系统 ffmpegvideo-static从源码构建video-prebuilt-static尝试使用 vcpkg 的预编译静态库。启用视频支持后gifski -o out.gif video.mp4可直接转换视频文件。许可证注意编译了视频支持后ffmpeg 的许可证即适用使用 H.264/H.265 视频可能需要专利许可建议改用 VP9/WebM。iOS 交叉编译推荐方式使用 Xcode 工程仓库自带 gifski.xcodeproj把它作为 subproject 加入你的 Xcode 工程并链接gifski-staticlibtarget即可自动为所有 Apple 平台构建库。手动交叉编译# 一次性添加 iOS target rustup target add aarch64-apple-ios # 构建 rustup update cargo build --lib --release --targetaarch64-apple-ios构建过程中可能打印 dropping unsupported crate typecdylib 警告——这是 iOS 构建的预期行为可忽略因为 iOS 不支持动态库。产物为./target/aarch64-apple-ios/release/libgifski.a直接加入 Xcode 工程即可然后从 Swift 调用 C API。质量保障测试体系仓库的 tests/tests.rs 围绕tests/目录下的真实 PNG 帧tests/a2/的 43 帧、tests/a3/的 x/y/z 三组 6 帧做端到端验证把帧喂给编码器生成 GIF再用gifgif-disposecrate 解码回放逐像素与原图对比assert_images_eq。覆盖的场景包括帧数 1–11、全重复帧合并延迟被合并为单帧见all_dupe_frames对delays [130]的断言、透明帧、跳帧混合、正向/反向/抖动播放等。这些测试同时印证了「相同帧跳过」「透明循环动画末帧重置背景」等编码决策。许可证gifski 采用AGPL 3.0 或更高版本LICENSECargo.toml 中license AGPL-3.0-or-later。作者提供包括商业许可在内的替代授权方案如果要在与本许可证不兼容的产品中使用需要另行联系获取授权。赞分享图像处理音视频【免费下载链接】gifskiGIF encoder based on libimagequant (pngquant). Squeezes maximum possible quality from the awful GIF format.项目地址https://gitcode.com/gh_mirrors/gif/gifski点击查看免费下载相关推荐gifski基于 pngquant 的高质量 GIF 编码器——CLI 用法、C API 集成与源码构建完全指南gifski基于 pngquant 的高质量 GIF 编码器——CLI 用法、C API 集成与源码构建完全指南 导读 gifskigif.ski是一个以桌面应用音视频GIFski高效高质量的GIF编码器GIFski高效高质量的GIF编码器 项目基础介绍和主要编程语言 GIFski 是一个基于 libimagequantpngquant的高质量 GIF 编图像处理音视频compressO 内置的高质量 GIF 编码器 gifski从命令行用法到源码集成全解析compressO 内置的高质量 GIF 编码器 gifski从命令行用法到源码集成全解析 本文以 gifski 官方 README 为主体围绕这一“基于桌面应用视频处理图像处理上一篇LTX-2.3-3DREAL-LoRA双模式深度对比Light与Strong版本如何选择看完这篇就懂下一篇Cogito V2系列大模型全解析从百亿到千亿参数的技术突破与应用革新创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

中性蛋白酶纯化产品的核心价值与应用解析

中性蛋白酶纯化产品的核心价值与应用解析

1. 中性蛋白酶纯化产品的核心价值解析中性蛋白酶(Neutral Protease)作为工业级生物催化剂中的"多面手",在皮革脱毛、食品加工、医药制备等领域展现出不可替代的作用。这类酶制剂最显著的特征是其最适pH值稳定在6.0-8.0的中性区间&a…

2026/10/15 6:51:50 阅读更多 →
偏振成像水下图像去雾:从物理模型到MATLAB实现

偏振成像水下图像去雾:从物理模型到MATLAB实现

1. 先搞清楚水下图像为什么会变“雾”1.1 水的吸收与散射才是罪魁祸首我最早接触水下图像去雾,是因为手头一个水下巡检项目——某海上平台结构物的安全检测,要拿水下机器人拍的视频去做缺陷识别。结果发现,水下图片和雾天图片在视觉上很相似&…

2026/10/15 6:51:50 阅读更多 →
TensorFlow Lite模型转换与量化实战:从SavedModel到端侧高效推理

TensorFlow Lite模型转换与量化实战:从SavedModel到端侧高效推理

1. 先说清楚:TensorFlow Lite到底替你解决的是什么问题很多做模型部署的开发者,第一次接触TensorFlow Lite(后文统一简称TFLite)时,容易把它当成一个单纯的“模型压缩工具”。这其实是个很常见的误解。TFLite真正的定位…

2026/10/15 6:50:50 阅读更多 →

最新新闻

CentOS 7.6搭建DNS正向解析服务:BIND配置实战

CentOS 7.6搭建DNS正向解析服务:BIND配置实战

平时做运维的朋友肯定都有过这种经历:公司内部新起了一套系统,IP地址越来越多,今天要连这个、明天要连那个,总不能天天翻Excel表格。更尴尬的是,内网服务想用一个好记的域名访问,结果发现公共DNS根本不认识…

2026/10/15 7:37:59 阅读更多 →
ConcurrentHashMap 1.7与1.8源码对比:从Segment到CAS+synchronized的并发演进

ConcurrentHashMap 1.7与1.8源码对比:从Segment到CAS+synchronized的并发演进

做Java开发的朋友,多少都被ConcurrentHashMap“教育”过。面试要问,源码分析要讲,线上排查高并发问题也绕不开它。而只要一聊到源码,1.7和1.8这两个版本的区别就是永远躲不开的坎:一个是Segment分段锁,一个…

2026/10/15 7:37:59 阅读更多 →
WinForm文本编辑器源码解析与高级功能扩展实战指南

WinForm文本编辑器源码解析与高级功能扩展实战指南

简介:这份C#文本/代码编辑器专题文档,面向具备一定C#基础、想从零构建或二次开发编辑器的研发人员,解决从界面搭建、文件操作到功能扩展各环节的关键问题。文档先讲解基于WinForm与RichTextBox的基础实现,包括字体加粗/斜体/下划线…

2026/10/15 7:37:59 阅读更多 →
微信小程序投票系统怎么从零搭建?以活动评选为例的完整流程

微信小程序投票系统怎么从零搭建?以活动评选为例的完整流程

从技术视角看,在微信生态里"创建一个投票活动",本质是配置一套活动数据结构 报名审核状态机 防刷策略 数据导出能力。本文以「活动评选」场景为例,梳理从创建到发布的完整流程,并以投票帮小程序作为落地实践案例。 …

2026/10/15 7:37:59 阅读更多 →
T型三电平逆变器VSG自适应控制与并离网切换优化

T型三电平逆变器VSG自适应控制与并离网切换优化

1. 项目背景与核心价值电力电子变换器在新能源发电系统中扮演着关键角色,而T型三电平逆变器因其高效率、低损耗的特性,在中大功率场合得到广泛应用。传统逆变器控制策略在并离网切换过程中常面临暂态冲击大、同步性能差等问题,这正是虚拟同步…

2026/10/15 7:37:59 阅读更多 →
软件的本质是行为:REA式行为克隆全流程拆解与实操复盘

软件的本质是行为:REA式行为克隆全流程拆解与实操复盘

说真的,看到“REA三天狂揽12万星”那条标题的时候,我第一反应是:这又是标题党?一个Agent,不用源码就能克隆一切软件,听起来太像营销号编出来的故事。但等我顺着链接把演示看完,又拿自己手头一个…

2026/10/15 7:36:59 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →