Compare commits

..

No commits in common. "b4d8c1ab9711835ae6a9556f4cdcf3bb48ea1b81" and "58ea934c9fb9ac687dc83d8416cebbdb39be1fe2" have entirely different histories.

3 changed files with 20 additions and 791 deletions

793
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -50,4 +50,4 @@ serde_json = { version = "1.0.140", optional = true }
time = "0.3.41"
toml = { version = "0.9.2", optional = true }
zerocopy = { version = "0.8.26", features = ["derive"] }
image = "0.25.6"
image = "0.25.6"

View file

@ -1,8 +1,7 @@
#![warn(clippy::all, clippy::pedantic)]
#![allow(clippy::unnecessary_debug_formatting)]
#![allow(clippy::too_many_lines)]
use std::{fs, io::BufReader, path::PathBuf};
use std::{fs, fs::File, io::BufReader, path::PathBuf};
use anyhow::{Context, Result};
use base64::Engine;
@ -15,11 +14,10 @@ use embedded_graphics::{
text::Text,
Drawable, Pixel,
};
use image::{
codecs::gif::GifDecoder, imageops::FilterType, AnimationDecoder, ImageReader,
Pixel as ImagePixel,
};
use serde::Deserialize;
use image::{
codecs::gif::GifDecoder, imageops::FilterType, AnimationDecoder, ImageReader, Pixel as iPixel,
};
use badgemagic::{
ble::Device as BleDevice,
@ -237,7 +235,7 @@ fn generate_payload(args: &mut Args) -> Result<PayloadBuffer> {
.resize(u32::MAX, 11, FilterType::Nearest)
.into_luma8();
let (width, height) = img.dimensions();
let mut buffer = payload.add_message(style, (width as usize).div_ceil(8));
let mut buffer = payload.add_message(style, (width as usize + 7) / 8);
for y in 0..height {
for x in 0..width {
if img.get_pixel(x, y).0 > [31] {
@ -248,7 +246,7 @@ fn generate_payload(args: &mut Args) -> Result<PayloadBuffer> {
}
}
Content::GifFile { gif_file } => {
let file_in = BufReader::new(fs::File::open(gif_file)?);
let file_in = BufReader::new(File::open(gif_file)?);
let frames = GifDecoder::new(file_in)?
.into_frames()
.collect_frames()
@ -260,7 +258,7 @@ fn generate_payload(args: &mut Args) -> Result<PayloadBuffer> {
anyhow::bail!("Expected 44x11 pixel gif file");
}
let mut buffer = payload.add_message(style, (48 * frame_count).div_ceil(8));
let mut buffer = payload.add_message(style, (48 * frame_count + 7) / 8);
for (i, frame) in frames.iter().enumerate() {
let buf = frame.buffer();