GRASS GIS 8 Programmer's Manual
8.3.2(2024)-exported
Loading...
Searching...
No Matches
psdriver/raster.c
Go to the documentation of this file.
1
#include <string.h>
2
3
#include "
psdriver.h
"
4
5
static
int
masked;
6
7
void
PS_begin_raster
(
int
mask,
int
src[2][2],
double
dst[2][2])
8
{
9
const
char
*type =
ps
.
true_color
? (mask ?
"RASTERRGBMASK"
:
"RASTERRGB"
)
10
: (mask ?
"RASTERGRAYMASK"
:
"RASTERGRAY"
);
11
12
int
ssx = src[0][1] - src[0][0];
13
int
ssy = src[1][1] - src[1][0];
14
int
sox = src[0][0];
15
int
soy = src[1][0];
16
17
double
dsx = dst[0][1] - dst[0][0];
18
double
dsy = dst[1][1] - dst[1][0];
19
double
dox = dst[0][0];
20
double
doy = dst[1][0];
21
22
masked = mask;
23
24
output
(
"gsave\n"
);
25
output
(
"%f %f translate %f %f scale\n"
, dox, doy, dsx, dsy);
26
output
(
"%d %d [%d 0 0 %d %d %d] %s\n"
, ssx, ssy, ssx, ssy, sox, soy, type);
27
}
28
29
int
PS_raster
(
int
n,
int
row,
const
unsigned
char
*red,
30
const
unsigned
char
*grn,
const
unsigned
char
*blu,
31
const
unsigned
char
*nul)
32
{
33
int
i;
34
35
for
(i = 0; i < n; i++) {
36
if
(
ps
.
true_color
) {
37
if
(masked)
38
output
(
"%02X%02X%02X%02X"
, (nul && nul[i]) ? 0xFF : 0x00,
39
red[i], grn[i], blu[i]);
40
else
41
output
(
"%02X%02X%02X"
, red[i], grn[i], blu[i]);
42
}
43
else
{
44
unsigned
int
gray = (
unsigned
int)(red[i] * 0.299 + grn[i] * 0.587 +
45
blu[i] * 0.114);
46
47
if
(masked)
48
output
(
"%02X%02X"
, (nul && nul[i]) ? 0xFF : 0x00, gray);
49
else
50
output
(
"%02X"
, gray);
51
}
52
}
53
54
output
(
"\n"
);
55
56
return
row + 1;
57
}
58
59
void
PS_end_raster
(
void
)
60
{
61
output
(
"grestore\n"
);
62
}
ps
struct ps_state ps
Definition
psdriver/graph_set.c:26
output
void output(const char *fmt,...)
Definition
psdriver/graph_set.c:232
PS_begin_raster
void PS_begin_raster(int mask, int src[2][2], double dst[2][2])
Definition
psdriver/raster.c:7
PS_end_raster
void PS_end_raster(void)
Definition
psdriver/raster.c:59
PS_raster
int PS_raster(int n, int row, const unsigned char *red, const unsigned char *grn, const unsigned char *blu, const unsigned char *nul)
Definition
psdriver/raster.c:29
psdriver.h
ps_state::true_color
int true_color
Definition
psdriver.h:14
psdriver
raster.c
Generated on Fri May 24 2024 09:06:59 for GRASS GIS 8 Programmer's Manual by
1.9.8