|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 1700 (0x6a4) Types: TextFile Names: »scale.c++«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦this⟧ »EUUGD11/euug-87hel/sec1/image/vartools/scale.c++«
/* This file contains the declarations necessary to scale the pixels in images. */ #include <stream.h> #include <stdio.h> #include <string.h> #include <double_image.h++> #include "vartools.h++" /* This takes an image as input and create another */ double_image& scale2(double scale, double increment, double_image& input, FILE *output_file) { // create the output image double_image *output_pointer = new double_image(CREATE,input.n_rows(),input.n_cols(),output_file); double_image& output = *output_pointer; // scale and increment the image while(input++,output++) { output() = input() * scale + increment; } return output; } /* This takes two files and takes one and puts a scaled version into the other */ void scale(double scale, double increment, FILE *input, FILE *output, char * comment) { // read in the input image double_image input_image(READ,input); // scale and increment it double_image& output_image = scale2(scale,increment,input_image,output); // set up the comments output_image.set_comments(comment,strlen(comment)); // add the comments char *string = form("Scaling image: scale %lf increment %lf\n",scale,increment); output_image.add_comment(string,strlen(string)); output_image.add_comment((char *) input_image.the_comments(),input_image.c_length()); // output the image to file output_image.write(); } /* Copyright (C) 1986, David Sher in the University of Rochester Permission is granted to any individual or institution to use, copy, or redistribute this software so long as it is not sold for profit, provided this copyright notice is retained. */