summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglenda <glenda@PC192-168-2-10>2015-09-23 17:52:35 +0200
committerglenda <glenda@PC192-168-2-10>2015-09-23 17:52:35 +0200
commit2b5ab91775b97d9e53b2c92a45164703855029a2 (patch)
tree8fb08d618b8427dc2501f3cae9a70efb5959c724
parentfa95531388c81f253b2ad21c26272002463b7692 (diff)
downloadplan9front-2b5ab91775b97d9e53b2c92a45164703855029a2.tar.xz
resize: add -n for nearest neighbour
-rw-r--r--sys/src/cmd/resize.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/src/cmd/resize.c b/sys/src/cmd/resize.c
index 40dbab74a..eb0235a4f 100644
--- a/sys/src/cmd/resize.c
+++ b/sys/src/cmd/resize.c
@@ -3,6 +3,8 @@
#include <draw.h>
#include <memdraw.h>
+int nflag;
+
static void
resample(Memimage *dst, Rectangle r, Memimage *src, Rectangle sr)
{
@@ -29,6 +31,8 @@ resample(Memimage *dst, Rectangle r, Memimage *src, Rectangle sr)
for(dp.y=0; dp.y<=dsize.y; dp.y++){
sp.y = _sp.y>>12;
ty = _sp.y&0xFFF;
+ if(nflag)
+ ty = ty << 1 & 0x1000;
pdst = pdst0;
sp.x = sr.min.x;
psrc0 = byteaddr(src, sp);
@@ -36,6 +40,8 @@ resample(Memimage *dst, Rectangle r, Memimage *src, Rectangle sr)
for(dp.x=0; dp.x<=dsize.x; dp.x++){
sp.x = _sp.x>>12;
tx = _sp.x&0xFFF;
+ if(nflag)
+ tx = tx << 1 & 0x1000;
psrc = psrc0 + sp.x*bpp;
s00 = (0x1000-tx)*(0x1000-ty);
s01 = tx*(0x1000-ty);
@@ -109,6 +115,9 @@ main(int argc, char **argv)
case 'y':
ysize = getsize(EARGF(usage()));
break;
+ case 'n':
+ nflag++;
+ break;
default:
usage();
}ARGEND