Page 1 of 1

gflConvolve

Posted: Sat Aug 27, 2011 9:39 pm
by madiazg
Hi,
I have problems with the function gflConvolve. In Delphi:

Code: Select all

var
    Filtro : PGFL_Filter;
....
begin
....
  Filtro.Size := 3; //-> ERROR
...
end;
Error in the application when I define the width of the matrix.
What is the problem?

Regards...
Miguel Angel

Re: gflConvolve

Posted: Mon Aug 29, 2011 8:43 am
by xnview
What is the error?

Re: gflConvolve

Posted: Wed Aug 31, 2011 8:33 pm
by madiazg
xnview wrote:What is the error?
The error occurs when running the application:

"Access violation at address FEFCC481. Read of address FEFCC481"

Miguel Angel

Re: gflConvolve

Posted: Thu Sep 01, 2011 11:54 am
by xnview
It's not TGFL_FILTER that you must use??

Re: gflConvolve

Posted: Sat Sep 03, 2011 11:07 pm
by madiazg
xnview wrote:It's not TGFL_FILTER that you must use??
I'm sorry but i don't understand you

Miguel Angel

Re: gflConvolve

Posted: Mon Sep 05, 2011 7:54 am
by xnview
TGFL_FILTER is a pointer, no? Not the struct?

Re: gflConvolve

Posted: Mon Sep 05, 2011 7:38 pm
by madiazg
xnview wrote:TGFL_FILTER is a pointer, no? Not the struct?
yes, PGFL_FILTER is a pointer to the structure TGFL_FILTER. In libgfl.pas:

Code: Select all

PGFL_FILTER = ^TGFL_FILTER;
  TGFL_FILTER = record
    Size: GFL_INT16;
    Matrix: array[0..15, 0..7] of GFL_INT16;
    Divisor: GFL_INT16;
    Bias: GFL_INT16;
  end;
function gflConvolve(src: PGFL_BITMAP; dst: PPGFL_BITMAP;  var filter: PGFL_FILTER): GFL_ERROR; stdcall;
Regards...
Miguel Angel

Re: gflConvolve

Posted: Tue Sep 06, 2011 8:04 am
by xnview
Ok, but i don't understand why with

Code: Select all

Filtro.Size := 3;
you have a crash...

Re: gflConvolve

Posted: Mon Dec 26, 2011 8:44 am
by Mike
Hi,
Filtro is pointer. It must be defined. I.e. must point to a chunk of memory where located structure GFL_FILTER. Please use getmem() or similar function. After that, it can be used in parts of your sample. Or use TGFL_FILTER