diff options
| author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2026-10-26 20:05:20 +0100 |
|---|---|---|
| committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2026-10-26 20:05:20 +0100 |
| commit | 375d87a9b0ec1cf2fffd705adb870c86144d2400 (patch) | |
| tree | 1e8e05e7cd58686628d0f4622622456613a42e4d /src/TIFFOutputImage.cxx | |
| parent | 45425dd047b791fe63f13a46a3251c529cfffc94 (diff) | |
Replace the C++ implementation with the Rust port
The Rust port (formerly gipfel-rs) is now the official successor to the
FLTK/GSL C++ code base. This squashes the port into a single commit and
removes the C++ sources (they remain in the git history below).
Layout:
crates/gipfel-core headless core: hills, panorama geometry, projections
(maxima-generated derivatives), pure-Rust LM fit,
gipfel: JPEG comment + EXIF I/O, profiles, stitching
crates/gipfel-cli command-line tools (export, info, stitch, profiles)
crates/gipfel-app Cosmic DE (libcosmic) GUI, binary name `gipfel`
codegen/ maxima scripts + regen.sh for the projection code
tests/ golden files + C++ reference harnesses (historical)
The original README is kept for now; it will be updated to describe the
Rust build. gipfel.dat, AUTHORS, ChangeLog and NEWS are unchanged.
Diffstat (limited to 'src/TIFFOutputImage.cxx')
| -rw-r--r-- | src/TIFFOutputImage.cxx | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/TIFFOutputImage.cxx b/src/TIFFOutputImage.cxx deleted file mode 100644 index e9f6a2b..0000000 --- a/src/TIFFOutputImage.cxx +++ /dev/null @@ -1,97 +0,0 @@ -// -// Copyright 2006 Johannes Hofmann <Johannes.Hofmann@gmx.de> -// -// This software may be used and distributed according to the terms -// of the GNU General Public License, incorporated herein by reference. - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#include "TIFFOutputImage.H" - -TIFFOutputImage::TIFFOutputImage(const char *f, int b) : OutputImage () { - bitspersample = (b==16)?16:8; - file = strdup(f); - tiff = NULL; - row = NULL; -} - -TIFFOutputImage::~TIFFOutputImage() { - if (row) - free(row); - - if (file) - free(file); -} - -int -TIFFOutputImage::init_internal() { - if (row) - free(row); - row = NULL; - - row = (unsigned char*) calloc((bitspersample / 8) * 4 * W, sizeof(char)); - if (!row) { - perror("calloc"); - return 1; - } - - if (tiff) - TIFFClose(tiff); - - if ((tiff = TIFFOpen(file, "w")) == NULL){ - fprintf(stderr, "can't open %s\n", file); - return 1; - } - - TIFFSetField(tiff, TIFFTAG_IMAGEWIDTH, W); - TIFFSetField(tiff, TIFFTAG_IMAGELENGTH, H); - TIFFSetField(tiff, TIFFTAG_COMPRESSION, COMPRESSION_DEFLATE); - TIFFSetField(tiff, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); - TIFFSetField(tiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); - TIFFSetField(tiff, TIFFTAG_ROWSPERSTRIP, 1); - TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, bitspersample); - TIFFSetField(tiff, TIFFTAG_SAMPLESPERPIXEL, 4); - - return 0; -} - -int -TIFFOutputImage::set_pixel_internal(int x, int r, int g, int b) { - if (bitspersample == 8) { - row[x*4+0] = (unsigned char) (r / 255); - row[x*4+1] = (unsigned char) (g / 255); - row[x*4+2] = (unsigned char) (b / 255); - row[x*4+3] = 255; - } else if (bitspersample == 16) { - unsigned short *row16 = (unsigned short*) row; - row16[x*4+0] = (unsigned short) r; - row16[x*4+1] = (unsigned short) g; - row16[x*4+2] = (unsigned short) b; - row16[x*4+3] = 65025; - } - - return 0; -} - -int -TIFFOutputImage::next_line_internal() { - TIFFWriteEncodedStrip(tiff, line - 1 , row, W * (bitspersample / 8) * 4); - - memset(row, 0, (bitspersample / 8) * 4 * W * sizeof(char)); - return 0; -} - -int -TIFFOutputImage::done_internal() { - if (tiff) - TIFFClose(tiff); - tiff = NULL; - - if (row) - free(row); - row = NULL; - - return 0; -} |
