With<0, get to memr but w and h of image are wrong
load 'c:\data\gdiplus.ijs'
require 'dll'
load 'viewmat'
NB. GdiplusStartupInput =: 1 0 0 0+0*4
BitmapData =: 'WdthHghtStrdFrmtScanRsrv'
GdiplusStartup (TOK=:,_1);GdiplusStartupInput;0
0
TOK
183471116
y=:'c:\data\atkiln.jpg'
NB. GdipCreateBitmapFromFile y;BMP=.,_1
GdipCreateBitmapFromFile y;BMP=:,_1
0
y
c:\data\atkiln.jpg
NB. bmpARGB
] DATA=: i.4%~#BitmapData
0 1 2 3 4 5
]y=:{.BMP
60912368
NB. GdipBitmapLockBits y;0;ImageLockModeRead;PixelFormat32bppARGB;DATA
GdipBitmapLockBits y;(<0);1;PixelFormat32bppARGB;DATA
┌─┬────────┬───┬─┬───────┬───────────────────────────────────────────────┐
│0│60912368│┌─┐│1│2498570│3006477107668 10731276436768592 116457472 1 4 5│
│ │ ││0││ │ │ │
│ │ │└─┘│ │ │ │
└─┴────────┴───┴─┴───────┴───────────────────────────────────────────────┘
'w h s f p r'=: DATA
NB. z=. (h,w)$memr p,0,(w*h),JINT
z=. (h,w)$memr p,0,(w*h),4
|domain error: memr
| z=.(h,w)$ memr p,0,(w*h),4
|[-20] c:\data\io.ijs
On 1/11/2012 11:21 AM, bill lam wrote:
> That line in api prototype might be incorrect, try coerce it into a null
> pointer eg,
>
> GdipBitmapLockBits y;(<0);ImageLockModeRead;PixelFormat32bppARGB;DATA
>
> Срд, 11 Янв 2012, Cliff Reiter писал(а):
>> Here is what I run into, J6.02 64bit, using api/gdiplus but using
>> platimg as a template
>>
>> load 'c:\data\gdiplus.ijs'
>> require 'dll'
>> load 'viewmat'
>>
>> GdiplusStartupInput =: 1 0 0 0
>> BitmapData =: 'WdthHghtStrdFrmtScanRsrv'
>>
>> GdiplusStartup (TOK=:,_1);GdiplusStartupInput;0
>> 0
>> y=:'c:\data\atkiln.jpg'
>> GdipCreateBitmapFromFile y;BMP=.,_1
>> 0
>>
>> NB. bmpARGB
>> ] DATA=: i.4%~#BitmapData
>> 0 1 2 3 4 5
>> y=:{.BMP
>> GdipBitmapLockBits y;0;ImageLockModeRead;PixelFormat32bppARGB;DATA
>> |domain error: cd
>> | GdipBitmapLockBits y;0;ImageLockModeRead;PixelFormat32bppARGB;DATA
>> |[-14] c:\data\io.ijs
>>
>>
>> On 1/11/2012 10:01 AM, bill lam wrote:
>>> Oleg's platimg only works for 32-bit, while api/gdiplus and api/gdi32
>>> (should) work for both 32-bit and 64-bit. Those x's usually stand for
>>> pointers whose length depend on 32/64-bit OS.
>>>
>>> Please provide a minimun example showing how it didn't work for GDI/API.
>>>
>>> Срд, 11 Янв 2012, Cliff Reiter писал(а):
>>>> In thinking about the best way to move forward the best of image3 addon
>>>> to 64 bit and J7 it seems to me that using OS resources would be
>>>> preferred over porting the image3 dll source to 64 bit. In the platimg
>>>> addon I see that Oleg managed that nicely in J6 32. I presume this has
>>>> also been done in J7 based on the J7 api/gdi addon. Any pointers to
>>>> where I should look for examples to that?
>>>>
>>>>
>>>> --
>>>> Clifford A. Reiter
>>>> Lafayette College, Easton, PA 18042
>>>> http://webbox.lafayette.edu/~reiterc/
>>>>
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> --
>> Clifford A. Reiter
>> Lafayette College, Easton, PA 18042
>> http://webbox.lafayette.edu/~reiterc/
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
--
Clifford A. Reiter
Lafayette College, Easton, PA 18042
http://webbox.lafayette.edu/~reiterc/
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm