diff --git a/lib/imgproc.cpp b/lib/imgproc.cpp index 82a742c..88cf61d 100644 --- a/lib/imgproc.cpp +++ b/lib/imgproc.cpp @@ -274,9 +274,14 @@ PHP_METHOD(opencv_imgproc, setImage) { } if (src){ + OPENCV_G(src_img_path) = src; opencv_imgproc_src_im = imread(src); opencv_imgproc_dst_im = imread(src); + + if (!opencv_imgproc_src_im.data) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "fail to load image from %s", src); + } } RETURN_TRUE; @@ -303,6 +308,10 @@ PHP_METHOD(opencv_imgproc, tclip) { //opencv_imgproc_var->width = dst_width; //opencv_imgproc_var->height = dst_height; + + if (opencv_imgproc_src_im.size().width == 0 || opencv_imgproc_src_im.size().height == 0){ + RETURN_FALSE; + } if (opencv_imgproc_src_im.size().width * 3 <= opencv_imgproc_src_im.size().height) { ratio = (float)dst_width / opencv_imgproc_src_im.size().width; @@ -316,6 +325,7 @@ PHP_METHOD(opencv_imgproc, tclip) { RETURN_TRUE; } + ratio = 200.0 / (float)opencv_imgproc_src_im.size().width; tmp_size = Size((int)(opencv_imgproc_src_im.size().width * ratio), (int)(opencv_imgproc_src_im.size().height * ratio)); opencv_imgproc_dst_im = Mat(tmp_size, CV_32S ); diff --git a/tests/002.phpt b/tests/002.phpt new file mode 100644 index 0000000..f9209da --- /dev/null +++ b/tests/002.phpt @@ -0,0 +1,18 @@ +--TEST-- +Check for opencv \OpenCV\ImgProc tclip +--SKIPIF-- + +--FILE-- +setImage($dir."/demo.jpg"); +$ret = $im->tclip(100,100); +var_dump($ret); +$im->writeImage($dir.'/demo_test.jpg'); + +?> +--EXPECT-- +bool(true) diff --git a/tests/demo.jpg b/tests/demo.jpg new file mode 100755 index 0000000..feae41b Binary files /dev/null and b/tests/demo.jpg differ