mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
image save()
This commit is contained in:
parent
7b2b8ba618
commit
10c7436884
Binary file not shown.
|
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 112 KiB |
@ -2,4 +2,6 @@ var opencv = require('./lib/opencv')
|
||||
, assert = require('assert')
|
||||
|
||||
console.log(opencv.version)
|
||||
console.log(new opencv.Image("./examples/mona.jpg").width, "!!")
|
||||
|
||||
|
||||
console.log(new opencv.Image('./examples/mona.jpg').save('t1.jpg'))
|
||||
27
src/Image.cc
27
src/Image.cc
@ -18,12 +18,19 @@ Image::Init(Handle<Object> target) {
|
||||
proto->SetAccessor(String::NewSymbol("width"), GetWidth);
|
||||
proto->SetAccessor(String::NewSymbol("height"), GetHeight);
|
||||
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "save", Save);
|
||||
|
||||
|
||||
/*proto->SetAccessor(String::NewSymbol("source"), GetSource, SetSource);
|
||||
proto->SetAccessor(String::NewSymbol("complete"), GetComplete);
|
||||
|
||||
proto->SetAccessor(String::NewSymbol("onload"), GetOnload, SetOnload);
|
||||
proto->SetAccessor(String::NewSymbol("onerror"), GetOnerror, SetOnerror);*/
|
||||
target->Set(String::NewSymbol("Image"), constructor->GetFunction());
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
Handle<Value>
|
||||
@ -63,12 +70,28 @@ Image::Image(v8::Value* fileName): ObjectWrap() {
|
||||
Handle<Value>
|
||||
Image::GetWidth(Local<String>, const AccessorInfo &info) {
|
||||
HandleScope scope;
|
||||
return scope.Close(Number::New(5));
|
||||
Image *img = ObjectWrap::Unwrap<Image>(info.This());
|
||||
return scope.Close(Number::New(img->image.size().width));
|
||||
}
|
||||
|
||||
Handle<Value>
|
||||
Image::GetHeight(Local<String>, const AccessorInfo &info) {
|
||||
HandleScope scope;
|
||||
return scope.Close(Number::New(5));
|
||||
Image *img = ObjectWrap::Unwrap<Image>(info.This());
|
||||
return scope.Close(Number::New(img->image.size().height));
|
||||
}
|
||||
|
||||
|
||||
Handle<Value>
|
||||
Image::Save(const v8::Arguments& args){
|
||||
HandleScope scope;
|
||||
|
||||
if (!args[0]->IsString())
|
||||
return ThrowException(Exception::TypeError(String::New("filename required")));
|
||||
|
||||
Image *self = ObjectWrap::Unwrap<Image>(args.This());
|
||||
String::AsciiValue filename(args[0]);
|
||||
int res = cv::imwrite(*filename, self->image);
|
||||
return scope.Close(Number::New(res));
|
||||
}
|
||||
|
||||
|
||||
@ -15,4 +15,7 @@ class Image: public node::ObjectWrap {
|
||||
|
||||
static Handle<Value> GetWidth(Local<String> prop, const AccessorInfo &info);
|
||||
static Handle<Value> GetHeight(Local<String> prop, const AccessorInfo &info);
|
||||
|
||||
static Handle<Value> Save(const v8::Arguments&);
|
||||
|
||||
};
|
||||
|
||||
@ -62,7 +62,7 @@ Point::Dot(const v8::Arguments& args){
|
||||
HandleScope scope;
|
||||
Point *p1 = ObjectWrap::Unwrap<Point>(args.This());
|
||||
Point *p2 = ObjectWrap::Unwrap<Point>(args[0]->ToObject());
|
||||
|
||||
|
||||
// Since V 2.3 Native Dot no longer supported
|
||||
return scope.Close(Number::New(p1->point.x * p2->point.x + p1->point.y * p2->point.y));
|
||||
}
|
||||
|
||||
@ -60,7 +60,16 @@ vows.describe('Smoke Tests OpenCV').addBatch({
|
||||
|
||||
|
||||
, "Image" : {
|
||||
topic : require('../lib/opencv')
|
||||
|
||||
, "constructor": function(cv){
|
||||
assert.ok(new cv.Image("./examples/mona.jpg"))
|
||||
}
|
||||
|
||||
, ".width / .height" : function(cv){
|
||||
assert.equal(new cv.Image("./examples/mona.jpg").width, 500)
|
||||
assert.equal(new cv.Image("./examples/mona.jpg").height, 756)
|
||||
}
|
||||
|
||||
}
|
||||
}).run();
|
||||
Loading…
x
Reference in New Issue
Block a user