This is ImageNewmap.m in view mode; [Download] [Up]
#import "../ImageOpr.h"
#import <appkit/Application.h>
#import <appkit/publicWraps.h>
#import <appkit/NXBitmapImageRep.h>
#import <appkit/Control.h>
#import <appkit/Panel.h>
#import <appkit/TextField.h>
#import <stdio.h>
#import <stdlib.h>
#import <string.h>
#import <libc.h>
#import <streams/streams.h>
#import "../TVController.h"
#import "../ToyWin.h"
#import "../ToyWinEPS.h"
#import "../ToyView.h"
#import "../common.h"
#import "../getpixel.h"
#import "imageOperation.h"
@implementation ImageOpr (Newmap)
- newBitmap: sender
{
ToyWin *tw, *newtw = nil;
ToyView *tv = NULL;
commonInfo *cinf;
char fn[256];
const char *fnam;
int err;
if ((tw = [theController keyWindow]) == nil) {
NXBeep();
return self;
}
tv = [tw toyView];
cinf = [tv commonInfo];
fnam = [tw filename];
sprintf(fn, "%s(Bitmap)", fnam);
if (cinf->type == Type_eps) {
NXStream *stream = [(ToyWinEPS *)tw openTiffStream:NO];
if (stream == NULL) {
errAlert(fnam, Err_MEMORY);
return self;
}
newtw = [[ToyWin alloc] init:tw by:NewBitmap];
err = [newtw drawFromFile:(const char *)fn or:stream];
NXCloseMemory(stream, NX_FREEBUFFER);
if (err) {
errAlert(fnam, err);
[newtw free];
return self;
}
}else {
NXBitmapImageRep *rep;
commonInfo *newinf;
unsigned char *map[MAXPLANE], *newmap[MAXPLANE];
float factor = [tv scaleFactor];
if (factor == 1.0) {
warnAlert(fnam, Err_OPR_IMPL);
return self;
}
rep = (NXBitmapImageRep *)[[tv image] bestRepresentation];
[rep getDataPlanes: map];
newinf = makeResizedMap(factor, cinf, map, newmap);
if (newinf == NULL) {
warnAlert(fnam, Err_MEMORY);
return self;
}
newtw = [[ToyWin alloc] init:tw by:NewBitmap];
[newtw initLocateWindow:fn
width:newinf->width height:newinf->height];
[newtw makeComment: newinf from: cinf];
[newtw drawView:newmap info: newinf];
}
[theController newWindow: newtw];
return self;
}
- EPSResize: sender
{
ToyWin *tw, *newtw = nil;
ToyView *tv = NULL;
NXStream *stream;
commonInfo *cinf;
char fn[256];
const char *fnam;
int err;
if ((tw = [theController keyWindow]) == nil
|| [(tv = [tw toyView]) scaleFactor] == 1.0) {
NXBeep();
return self;
}
cinf = [tv commonInfo];
fnam = [tw filename];
sprintf(fn, "%s(ResizeEPS)", fnam);
if (cinf->type != Type_eps) {
errAlert(fnam, Err_EPS_ONLY);
return self;
}
stream = [(ToyWinEPS *)tw resizeEPS:[tv scaleFactor] name:fn error:&err];
if (stream == NULL) {
errAlert(fnam, err);
return self;
}
newtw = [[ToyWinEPS alloc] init:tw by:ResizeEPS];
err = [newtw drawFromFile:(const char *)fn or:stream];
NXCloseMemory(stream, NX_FREEBUFFER);
if (err) {
errAlert(fnam, err);
[newtw free];
return self;
}
[theController newWindow: newtw];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.