大象笔记

知者行之始,行者知之成

Python PIL 设置图片的 DPI 分辨率和压缩比

昨天搞定了 CMYK 图片模式的问题,参考前文 CMYK 印刷展板图片批量生成,Python 程序踩坑记。发现生成的图片文件过大,跟示例图片差了快 3 倍,完全无法接受。 而且图片的 DPI 分辨率也不对,导致打印出来的展板宽高与预期不符。所以将 Python 生成图片的代码又调整了一下参数。 优化后的代码 save_kwargs = { "format": "JPEG", "quality": 80, "optimize": True, "dpi": (150, 150) } if i ...

阅读全文...

CMYK 印刷展板图片批量生成,Python 程序踩坑记

公司要打印一批展板,要求生成的图片是 CMYK 模式的图片。但是我用 Golang 搞了半天也无法生成跟设计稿颜色一致的图片, 对比发现生成都是 RGBA 模式的图片,颜色不对。最终使用 Python 的 Pillow 库轻松搞定。折腾了一下午,记录一下心路历程 。 什么是 CMYK 模式 主要用途: 印刷。专门为使用物理油墨在纸张等介质上复制颜色而设计。设计传单、海报、杂志、包装、画册等需要印刷的物料时,最终输出文件 必须是 CMYK 模式 。 C: Cyan (青色) M: Magenta (品红色) Y: Yellow (黄色) K: Key (黑色 - Key 通常指印刷中的关键色版 ...

阅读全文...

迎接 Android 16,更新 Google Play 中 Android App 的目标 API 级别 36

感觉每年都要维护一下 Google Play 应用商店里的 Android App 目标 API 级别。这不,最近又收到了 Google Play Console 的更新提醒: 不更新 目标 API 级别,Android 16 的用户就不能下载 App。之前 2023 年处理过一次,参考: 升级 Android App API 级别 目标 API 级别是多少 恰好看到一篇 React Native 0.81 新版本的发布文章,里面也提到将支持 Android 16(API 级别 36)。 看来就是 36 了。 Android Studio 版本 Android Studio Narwhal ...

阅读全文...

Unknown Kotlin JVM target: 21, Android Studio 2025

新安装的 Android Studio Narwhal | 2025.1.1 Patch 1 又是一堆问题。 编译时,报错: Unknown Kotlin JVM target: 21 Execution failed for task ':app:kaptGenerateStubsDebugKotlin'. > Error while evaluating property 'compilerOptions.jvmTarget' of task ':app:kaptGenerateStubsDebugKotlin'. > Failed to calculate the va ...

阅读全文...

Android Studio 2025 新版本踩大坑, Plugin com.android.application was not found

为了将 Android App 的目标 API 级别升级到 36 以支持 Android 16。 我更新 Android Studio 到了最新的版本:Android Studio Narwhal | 2025.1.1 Patch 1。 但是,在安装 gradle 依赖时,报错: Build file 'build.gradle' line: 10 Plugin [id: 'com.android.application', version: '8.0.1', apply: false] was not found in any of the following sources: 这个错误 ...

阅读全文...

Nginx 444 状态码,应对网站流量攻击的恶意请求

今天,网站受到的流量攻击还在持续。依旧是海量的广东 IP 请求,没有任何规律。参考前文: 网站七牛 CDN 流量被刷,差点破产 尝试了 Nginx 返回两种状态码,但是都没有效果,攻击请求依旧: 403 Forbidden: 明确表示请求权限被拒绝 502:暗示我的服务已经挂了,大爷饶命 无奈╮(╯▽╰)╭,都没有用。这个刷流量的攻击方,既不是来爬内容的,也不是想把你网站拖垮,就是纯粹地刷流量。根本不在乎你返回啥。某书上有个大佬分析是部分 CDN 提供商实际是黑产,需要伪造流量,所以狂刷数据。下图是七牛云 CDN 的请求数统计,目前只能止住 CDN 的消耗,但是服务器源站的请求还在继续: ...

阅读全文...

恶意攻击网站的 IP 黑名单 2025-08-14

awk '$9 == 403 {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr > 403.txt 大部分是广东清远、揭阳的 IP: 感觉不像是小作坊干的,一天 30 多万个广东的 IP,一个 IP 只请求2~3次。还是隔开了时间段。 这种调度能力,应该是个人搞不起的。更像是大厂的海量客户端所为。因为 IP 都不是机房的 IP。 不知道,总觉得不对劲。像是为了推广某项 CDN 服务特意搞的攻击。而且对方没有下狠手,否则瞬间网站就完蛋。 113.100.0.227 113.100.0.249 113.100 ...

阅读全文...

网站七牛 CDN 流量被刷,差点破产

昨天突然收到七牛云的余额不足提醒邮件,大意是我的账号余额不足以继续使用 7 天。 我以为是七牛云发送邮件的 bug,因为我月初刚充值,充了大概一年的费用。谨慎起见,还是登录了后台查看。 X,实时消费金额果然有问题。一个周大概消耗了一年的流量。 流量统计 七牛云后台的加速域名,里有个统计分析功能: https://portal.qiniu.com/cdn/domain 里面可以查看上面截图中的流量统计 (这个功能藏的太深,我找了半天才找到) 可以看到,流量从 8 月 1 日开始就出现异常,最近一个周变得更加恐怖。 文件统计 从文件统计看,主要是首页里的图片和 js 文件。 临时处理措施 ⦁ ...

阅读全文...