Changeset 3148 for libcaca/trunk


Ignore:
Timestamp:
Oct 30, 2008, 12:39:24 PM (12 years ago)
Author:
nico
Message:
  • Remove "_gd" suffix from dithering functions
  • caca_dithering_bitmap can load palette from gd resource
  • Remove caca_set_dither_palette_gd function
  • Adapt sample program "dithering.php"
Location:
libcaca/trunk/caca-php
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca-php/examples/dithering.php

    r3138 r3148  
    66        die("Can not open image.\n");
    77
    8 $dither = caca_create_dither_gd($img);
     8$dither = caca_create_dither($img);
    99if (!$dither)
    1010        die("Can not create dither. Maybe this image is not truecolor.\n");
     
    1515        die("Can not create display.\n");
    1616
    17 //caca_set_dither_palette_gd($dither, $img);
    18 caca_dither_bitmap_gd($canvas, 0, 0, caca_get_canvas_width($canvas), caca_get_canvas_height($canvas), $dither, $img);
     17caca_dither_bitmap($canvas, 0, 0, caca_get_canvas_width($canvas), caca_get_canvas_height($canvas), $dither, $img);
    1918caca_refresh_display($display);
    2019
  • libcaca/trunk/caca-php/php_caca.c

    r3143 r3148  
    8686        PHP_FE(caca_free_frame, NULL)
    8787        PHP_FE(caca_create_dither, NULL)
    88         PHP_FE(caca_create_dither_gd, NULL)
    8988        PHP_FE(caca_set_dither_palette, NULL)
    90         PHP_FE(caca_set_dither_palette_gd, NULL)
    9189        PHP_FE(caca_set_dither_brightness, NULL)
    9290        PHP_FE(caca_get_dither_brightness, NULL)
     
    107105        PHP_FE(caca_get_dither_algorithm_list, NULL)
    108106        PHP_FE(caca_get_dither_algorithm, NULL)
    109         PHP_FE(caca_dither_bitmap_gd, NULL)
     107        PHP_FE(caca_dither_bitmap, NULL)
    110108        PHP_FE(caca_load_font, NULL)
    111109        PHP_FE(caca_get_font_list, NULL)
     
    381379}
    382380
     381int gd_load_palette(gdImage *img, caca_dither_t *dither) {
     382        if (!img || img->trueColor || gdMaxColors != 256) {
     383                return -1;
     384        }
     385
     386        uint32_t r[256], g[256], b[256], a[256];
     387        int i;
     388        for (i = 0; i < 256; i++) {
     389                r[i] = img->red[i] << 4;
     390                g[i] = img->green[i] << 4;
     391                b[i] = img->blue[i] << 4;
     392                a[i] = img->alpha[i] << 4;
     393        }
     394
     395        return caca_set_dither_palette(dither, &r[0], &g[0], &b[0], &a[0]);
     396}
     397
    383398//------- Caca's functions ----------------//
    384399
     
    10071022
    10081023PHP_FUNCTION(caca_create_dither) {
    1009         long bpp, w, h, pitch, rmask, gmask, bmask, amask = 0;
    1010         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llllllll", &bpp, &w, &h, &pitch, &rmask, &gmask, &bmask, &amask) == FAILURE) {
    1011                 RETURN_FALSE;
    1012         }
    1013         caca_dither_t *dither = caca_create_dither(bpp, w, h, pitch, rmask, gmask, bmask, amask);
    1014         ZEND_REGISTER_RESOURCE(return_value, dither, le_caca_dither);
    1015 }
    1016 
    1017 PHP_FUNCTION(caca_create_dither_gd) {
    10181024        zval *_zval;
    10191025        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
     
    10621068}
    10631069
    1064 PHP_FUNCTION(caca_set_dither_palette_gd) {
    1065         zval *_zval1, *_zval2;
    1066         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr", &_zval1, &_zval2) == FAILURE) {
    1067                 RETURN_FALSE;
    1068         }
    1069 
    1070         caca_dither_t *dither;
    1071         ZEND_FETCH_RESOURCE(dither, caca_dither_t*, &_zval1, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_dither);
    1072 
    1073         gdImage *img = fetch_external_resource(_zval2, "gd");
    1074         if (!img || img->trueColor || gdMaxColors != 256) {
    1075                 RETURN_FALSE;
    1076         }
    1077 
    1078         uint32_t r[256], g[256], b[256], a[256];
    1079         int i;
    1080         for (i = 0; i < 256; i++) {
    1081                 r[i] = img->red[i] << 4;
    1082                 g[i] = img->green[i] << 4;
    1083                 b[i] = img->blue[i] << 4;
    1084                 a[i] = img->alpha[i] << 4;
    1085         }
    1086 
    1087         RETURN_SUCCESS(caca_set_dither_palette(dither, &r[0], &g[0], &b[0], &a[0]));
    1088 }
    1089 
    10901070PHP_FUNCTION(caca_set_dither_brightness) {
    10911071        zval *_zval;
     
    12881268}
    12891269
    1290 PHP_FUNCTION(caca_dither_bitmap_gd) {
     1270PHP_FUNCTION(caca_dither_bitmap) {
    12911271        zval *_zval1, *_zval2, *_zval3;
    12921272        long x, y, w, h = 0;
    1293         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllllrr", &_zval1, &x, &y, &w, &h, &_zval2, &_zval3) == FAILURE) {
     1273        zend_bool load_palette = 1;
     1274        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllllrr|b", &_zval1, &x, &y, &w, &h, &_zval2, &_zval3, &load_palette) == FAILURE) {
    12941275                RETURN_FALSE;
    12951276        }
     
    13071288        void *pixels = gd_get_pixels(img);
    13081289        if (!pixels) {
     1290                RETURN_FALSE;
     1291        }
     1292
     1293        //load palette if image is not true color
     1294        if (load_palette && !img->trueColor && gd_load_palette(img, dither) != 0) {
    13091295                RETURN_FALSE;
    13101296        }
  • libcaca/trunk/caca-php/php_caca.h

    r3142 r3148  
    102102PHP_FUNCTION(caca_free_frame);
    103103PHP_FUNCTION(caca_create_dither);
    104 PHP_FUNCTION(caca_create_dither_gd);
    105104PHP_FUNCTION(caca_set_dither_palette);
    106 PHP_FUNCTION(caca_set_dither_palette_gd);
    107105PHP_FUNCTION(caca_set_dither_brightness);
    108106PHP_FUNCTION(caca_get_dither_brightness);
     
    123121PHP_FUNCTION(caca_get_dither_algorithm_list);
    124122PHP_FUNCTION(caca_get_dither_algorithm);
    125 PHP_FUNCTION(caca_dither_bitmap_gd);
     123PHP_FUNCTION(caca_dither_bitmap);
    126124PHP_FUNCTION(caca_load_font);
    127125PHP_FUNCTION(caca_get_font_list);
Note: See TracChangeset for help on using the changeset viewer.