debug 日志:DebugLog 增加总开关 enabled(默认 false),log() 直接返回、 init() 不装崩溃钩子、startFile() 不建文件。要在设备上排查时改成 true 重新构建 即可,其它代码不动。关闭后崩溃仍按安卓常规方式可见(logcat AndroidRuntime + 系统弹窗),只是不再有落在相册目录旁的 debug_*.log。 真机烟雾测试(小米 22041211AC,相机插着):出流正常、拍照成功(相册 19→20, 新增 MAG160C_20260912_153522.jpg)、崩溃 0、App 自身日志行数 0、无新日志文件。 插图版手册 docs/android_app/app_manual.md + manual_images/: - 02_markers:标记结构解剖(准星/读数/引线/描边字),真机照片放大 3 倍并标注 - 03/04:横屏 960x720 与竖屏 720x960 的真实照片 - 05/06/07:设置、分析(含底部测量面板)、相册 真机截图 - 01_live_schematic:实时界面改为**自绘示意图**,因为实时 OSD 文字按握持角度预旋转 (用户要求的可读性设计),手册拍摄时手机横放,截图里文字全是侧躺的无法阅读; 其余界面文字本就水平,直接用截图。 图由 manual_images/MakeFigures.java 生成(裁剪缩放/放大标注/示意图绘制), 界面改动后重跑即可;原始截图存为 JPEG(PNG→JPEG 省约 8MB)作为可再生输入。 .class 已加入 .gitignore。 README 阅读顺序加入操作手册、结构表更新、里程碑补记根因级修复。105 项测试全绿。
28 lines
1.3 KiB
Java
28 lines
1.3 KiB
Java
import java.awt.image.BufferedImage;
|
|
import java.io.File;
|
|
import javax.imageio.*;
|
|
import javax.imageio.stream.FileImageOutputStream;
|
|
/** Convert capture PNGs to JPEG (the figures' inputs do not need to be lossless). */
|
|
public class RawJpeg {
|
|
public static void main(String[] a) throws Exception {
|
|
for (String n : a) {
|
|
BufferedImage src = ImageIO.read(new File(n));
|
|
// screencap PNGs carry an alpha channel; JPEG cannot take that colorspace
|
|
BufferedImage im = new BufferedImage(
|
|
src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_RGB);
|
|
im.createGraphics().drawImage(src, 0, 0, null);
|
|
String out = n.replace(".png", ".jpg");
|
|
ImageWriter w = ImageIO.getImageWritersByFormatName("jpeg").next();
|
|
ImageWriteParam p = w.getDefaultWriteParam();
|
|
p.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
|
|
p.setCompressionQuality(0.88f);
|
|
try (FileImageOutputStream os = new FileImageOutputStream(new File(out))) {
|
|
w.setOutput(os);
|
|
w.write(null, new IIOImage(im, null, null), p);
|
|
}
|
|
w.dispose();
|
|
System.out.println(out + " " + new File(out).length() / 1024 + " KB");
|
|
}
|
|
}
|
|
}
|