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.