This is IJfifD.m in view mode; [Download] [Up]
/*$Copyright:
* Copyright (C) 1992.5.22. Recruit Co.,Ltd.
* Institute for Supercomputing Research
* All rights reserved.
* NewsBase by ISR, Kazuto MIYAI, Gary ARAKAKI, Katsunori SUZUKI, Kok-meng Lue
*
* You may freely copy, distribute and reuse the code in this program under
* following conditions.
* - to include this notice in the source code, if it is to be distributed
* with source code.
* - to add the file named "COPYING" within the code, which shall include
* GNU GENERAL PUBLIC LICENSE(*).
* - to display an acknowledgement in binary code as follows: "This product
* includes software developed by Recruit Co.,Ltd., ISR."
* - to display a notice which shall state that the users may freely copy,
* distribute and reuse the code in this program under GNU GENERAL PUBLIC
* LICENSE(*)
* - to indicate the way to access the copy of GNU GENERAL PUBLIC LICENSE(*)
*
* (*)GNU GENERAL PUBLIC LICENSE is stored in the file named COPYING
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
$*/
// IEpsD is the media class for EPS. The file extension, RTF control word
// and pasteboard type are "eps", "MMeps" and NXPostScriptPboardtype,
// respectively.
#import "IJfifD.h"
#import "JFIFBitmap.h"
#import <appkit/NXImage.h>
#import <appkit/Pasteboard.h>
#import <libc.h>
#import "errdebug.h"
@implementation IJfifD
static NXAtom fileExtension;
static NXAtom pasteboardType;
static NXImage *icon;
+ initialize
{
fileExtension = NXUniqueStringNoCopy("jpeg");
pasteboardType = NXUniqueStringNoCopy("JFIF Format");
[IMediaD getFileIconFor:(Class)self];
return(self);
}
+ (NXAtom)fileExtension
{
return(fileExtension);
}
+ (NXAtom)pasteboardType
{
return(pasteboardType);
}
+ setIcon:(NXImage *)theIcon
{
icon = theIcon;
return(self);
}
+ (NXImage *)icon
{
return(icon);
}
- initWithKey:(char *)pathName
{
[super initWithKey:pathName];
image = nil;
return(self);
}
- (NXImage *)image
{
return(image);
}
- (BOOL)readFromStream:(NXStream *)inStream
{
JFIFBitmap *bitmap;
NXSize imageSize;
[super readFromStream:inStream];
bitmap = [[JFIFBitmap alloc] readJFIF:inStream];
imageSize.width = [bitmap pixelsWide];
imageSize.height = [bitmap pixelsHigh];
image = [[NXImage allocFromZone:[self zone]] initSize:&imageSize];
[image useCacheWithDepth:NX_TwentyFourBitRGBDepth];
[image lockFocus];
[bitmap draw];
[image unlockFocus];
[bitmap free];
[image setDataRetained:YES];
return(YES);
}
- free
{
if (image != nil) {
[image free];
}
return([super free]);
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.