diff options
author | Valentin Popov <valentin@popov.link> | 2025-02-08 04:11:02 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2025-02-08 04:11:02 +0300 |
commit | 8d8653133bf3a12ac58c0e4f34624e9beac11751 (patch) | |
tree | ac0831704db9f138a90872b530eabda457db1829 /texture-decoder/src | |
parent | 94d2f8a512312b8aff25672760b687e6d90c1ec9 (diff) | |
download | fparkan-8d8653133bf3a12ac58c0e4f34624e9beac11751.tar.xz fparkan-8d8653133bf3a12ac58c0e4f34624e9beac11751.zip |
Обновление структуры проекта
Diffstat (limited to 'texture-decoder/src')
-rw-r--r-- | texture-decoder/src/main.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/texture-decoder/src/main.rs b/texture-decoder/src/main.rs deleted file mode 100644 index 26c7edd..0000000 --- a/texture-decoder/src/main.rs +++ /dev/null @@ -1,41 +0,0 @@ -use std::io::Read; - -use byteorder::ReadBytesExt; -use image::Rgba; - -fn decode_texture(file_path: &str, output_path: &str) -> Result<(), std::io::Error> { - // Читаем файл - let mut file = std::fs::File::open(file_path)?; - let mut buffer: Vec<u8> = Vec::new(); - file.read_to_end(&mut buffer)?; - - // Декодируем метаданные - let mut cursor = std::io::Cursor::new(&buffer[4..]); - let img_width = cursor.read_u32::<byteorder::LittleEndian>()?; - let img_height = cursor.read_u32::<byteorder::LittleEndian>()?; - - // Пропустить оставшиеся байты метаданных - cursor.set_position(20); - - // Извлекаем данные изображения - let image_data = buffer[cursor.position() as usize..].to_vec(); - let img = - image::ImageBuffer::<Rgba<u8>, _>::from_raw(img_width, img_height, image_data.to_vec()) - .expect("Failed to decode image"); - - // Сохраняем изображение - img.save(output_path).unwrap(); - - Ok(()) -} - -fn main() { - let args: Vec<String> = std::env::args().collect(); - - let input = &args[1]; - let output = &args[2]; - - if let Err(err) = decode_texture(input, output) { - eprintln!("Error: {}", err) - } -} |