⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gseispalette.c

📁 segy 显示程序!希望能给正在做这部分朋友提供一部分资料
💻 C
📖 第 1 页 / 共 5 页
字号:
    g_free (private->red_lookup_table);    if (private->color_scale)        g_object_unref (private->color_scale);    if (private->name)        g_free (private->name);#ifdef DEBUG    g_print ("<GSeisPalette is finalized>\n");#endif    if (G_OBJECT_CLASS (g_seis_palette_parent_class)->finalize)        G_OBJECT_CLASS (g_seis_palette_parent_class)->finalize (object);}enum {    PROP_0,    PROP_MIN_COLOR,    PROP_MAX_COLOR,    PROP_COLORS_ARRAY,    PROP_NAME};static void g_seis_palette_set_property (GObject *object, guint prop_id,                                         const GValue *value, GParamSpec *pspec) {    GSeisPalette *self = G_SEIS_PALETTE (object);    GSeisPalettePrivate *private = G_SEIS_PALETTE_GET_PRIVATE (self);    GSeisColor *min_color, *max_color;    switch (prop_id) {        case PROP_MIN_COLOR:            min_color = g_value_get_boxed (value);            if (min_color) {                private->min_color_is_set = TRUE;                private->min_color.red = min_color->red;                private->min_color.green = min_color->green;                private->min_color.blue = min_color->blue;                if (private->max_color_is_set)                    g_seis_palette_init_by_min_max (self, &private->min_color, &private->max_color);                g_object_notify (object, "min_color");            }            break;        case PROP_MAX_COLOR:            max_color = g_value_get_boxed (value);            if (max_color) {                private->max_color_is_set = TRUE;                private->max_color.red = max_color->red;                private->max_color.green = max_color->green;                private->max_color.blue = max_color->blue;                if (private->min_color_is_set)                    g_seis_palette_init_by_min_max (self, &private->min_color, &private->max_color);                g_object_notify (object, "max_color");            }            break;        case PROP_COLORS_ARRAY:            if (FALSE == private->min_color_is_set || FALSE == private->max_color_is_set) {                g_seis_palette_init_by_array (self, (GArray*)g_value_get_pointer (value));                g_object_notify (object, "colors_array");            }            break;        case PROP_NAME:            if (private->name)                g_free (private->name);            private->name = g_value_dup_string (value);            if (NULL == private->name)                private->name = g_strdup ("Default");                g_object_notify (object, "name");            break;        default:            G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);            break;    }}static void g_seis_palette_get_property (GObject *object, guint prop_id,                                         GValue *value, GParamSpec *pspec) {    GSeisPalette *self = G_SEIS_PALETTE (object);    GSeisPalettePrivate *private = G_SEIS_PALETTE_GET_PRIVATE (self);    switch (prop_id) {        case PROP_COLORS_ARRAY:            g_value_set_pointer (value, NULL);            break;        case PROP_MIN_COLOR:            g_value_set_boxed (value, NULL);            break;        case PROP_MAX_COLOR:            g_value_set_boxed (value, NULL);            break;        case PROP_NAME:            g_value_set_string (value, private->name);            break;        default:            G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);            break;    }}static void g_seis_palette_class_init (GSeisPaletteClass *klass) {    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);    gobject_class->finalize = (GObjectFinalizeFunc) g_seis_palette_finalize;    gobject_class->set_property = g_seis_palette_set_property;    gobject_class->get_property = g_seis_palette_get_property;    g_type_class_add_private (klass, sizeof (GSeisPalettePrivate));    g_object_class_install_property (gobject_class,                                     PROP_MIN_COLOR,                                     g_param_spec_boxed ("min_color", "MinimumColor",                                     "Color of the palette bottom",                                     G_TYPE_SEIS_COLOR,                                     G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));    g_object_class_install_property (gobject_class,                                     PROP_MAX_COLOR,                                     g_param_spec_boxed ("max_color", "MaximumColor",                                     "Color of the palette top",                                     G_TYPE_SEIS_COLOR,                                     G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));    g_object_class_install_property (gobject_class,                                     PROP_COLORS_ARRAY,                                     g_param_spec_pointer ("colors_array", "ColorArray",                                     "Array of colors to construct palette from",                                     G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));    g_object_class_install_property (gobject_class,                                     PROP_NAME,                                     g_param_spec_string ("name", "Name",                                     "Palette name",                                     "Default",                                     G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));#ifdef DEBUG    g_print ("<GSeisPalette class is inited>\n");#endif}static GPtrArray* predefined_palettes;GPtrArray *g_seis_view_get_predefined_palettes (void) {    GSeisPalette *palette;    GSeisPaletteDef palette_def;    GArray *palette_array_def;    if (predefined_palettes)        return predefined_palettes;    predefined_palettes = g_ptr_array_sized_new (20);    palette_array_def = g_array_sized_new (FALSE, FALSE, sizeof (GSeisPaletteDef), 20);/* * * Grayscale * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "Grayscale");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Black-White-Blue * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "BlackWhiteBlue");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Black-White-Green * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 0;    palette_def.color.green = 65535;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "BlackWhiteGreen");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Black-White-Purple * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 44060;    palette_def.color.green = 115;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "BlackWhitePurple");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Black-White-Red * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 65535;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "BlackWhiteRed");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Blue-White-Black * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "BlueWhiteBlack");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Blue-White-Green * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.0f;    palette_def.color.red = 0;    palette_def.color.green = 65535;    palette_def.color.blue = 0;    g_array_append_val (palette_array_def, palette_def);    palette = g_seis_palette_new_by_array (palette_array_def, "BlueWhiteGreen");    g_ptr_array_add (predefined_palettes, (gpointer)palette);    g_array_remove_range (palette_array_def, 0, palette_array_def->len);/* * * Blue-White-Red * */    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    palette_def.color.red = 0;    palette_def.color.green = 0;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.502f;    palette_def.color.red = 65535;    palette_def.color.green = 65535;    palette_def.color.blue = 65535;    g_array_append_val (palette_array_def, palette_def);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -