• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSImage From Client to Server
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSImage From Client to Server


  • Subject: Re: NSImage From Client to Server
  • From: "Jordan Evans" <email@hidden>
  • Date: Mon, 24 Jul 2006 06:31:25 -0700

I'm trying to get my client application to send a tiff to be
composited on the server application's NSView.  Could someone help me
out?

Images don't serialize properly, as they appear to just contain a
reference to some resources in the WindowServer internally. Your best
bet is going to be to get a representation of the image in a NSData
object and send that instead.

That worked. Thank you.

You wouldn't happen to know how the protocols should be written in this code?

/* MyView */

#import <Cocoa/Cocoa.h>

@interface MyView : NSView
{
	NSImage *myImage;
}

- (void)setImage:(NSData *)image;

@end

#import "MyView.h"

@implementation MyView

- (id)initWithFrame:(NSRect)frameRect
{
	if ((self = [super initWithFrame:frameRect]) != nil)
	{

	}

	return self;
}

- (void)setImage:(NSData *)image
{
	myImage = [[NSImage alloc] initWithData:image];

	[self setNeedsDisplay:YES];
}

- (void)drawRect:(NSRect)rect
{
	NSRect bounds = [self bounds];

	if(myImage)
	{
		NSRect imageRect;
		NSRect drawingRect;

		imageRect.origin = NSZeroPoint;
		imageRect.size = [myImage size];
		drawingRect = imageRect;
		[myImage
			drawInRect:drawingRect
			fromRect:imageRect
			operation:NSCompositeSourceOver
			fraction:1.0
		];
	}
	else
		NSLog(@"Did not draw myImage.");
}

@end


/* Controller */

#import <Cocoa/Cocoa.h>

#import "MyView.h"

@interface Controller : NSObject
{
   NSSocketPort *port;
	NSConnection *connection;

	IBOutlet NSView *myView;
}

- (void)setImage:(NSData *)image;

- (IBAction)vendService:(id)sender;

@end


#import "Controller.h"

@implementation Controller

- (void)setImage:(NSData *)image
{
	[myView setImage:image];
}

- (IBAction)vendService:(id)sender
{
	port = [[NSSocketPort alloc] initWithTCPPort:12345];

	connection = [[NSConnection connectionWithReceivePort:port
sendPort:nil] retain];

	[connection setRootObject:self];

	if(![[NSSocketPortNameServer sharedInstance] registerPort:port
name:@"server"])
	{
		NSLog(@"Could not register name of server.");
	}
}

@end


/* Controller */

#import <Cocoa/Cocoa.h>

@interface Controller : NSObject
{
   IBOutlet NSTextField *messageField;

	NSSocketPort *port;
	NSConnection *connection;
	NSDistantObject *proxy;

	NSImage *anImage;
	NSData *theData;
	NSData *imageData;
}

- (IBAction)createProxy:(id)sender;
- (IBAction)sendImage:(id)sender;

@end


#import "Controller.h"

@implementation Controller

- (id)init
{
   self = [super init];

   if ( self )
	{
		imageData = [[NSData alloc]
initWithContentsOfFile:@"/users/mycomputer/desktop/snapshot.tiff"];
   }

   return self;
}

- (IBAction)createProxy:(id)sender
{
	port = [[NSSocketPortNameServer sharedInstance] portForName:@"server"
host:@"*"];

	connection = [NSConnection connectionWithReceivePort:nil sendPort:port];

	proxy = [[connection rootProxy] retain];

}

- (IBAction)sendImage:(id)sender
{
	if( ![proxy setImage:imageData] )
	{
		NSLog(@"Did not set send image.");
	}
}

@end
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Prev by Date: Re: What is serializaton?
  • Next by Date: Re: What is serializaton?
  • Previous by thread: Re: NSImage From Client to Server
  • Next by thread: Application upgrades itself?
  • Index(es):
    • Date
    • Thread