2013-09-02 4 views
3

Я читаю php documentation для функции imagecreatetruecolor, которая возвращает идентификатор ресурса изображения при успешном завершении. Что означает «идентификатор ресурса изображения»? Я искал документацию PHP для этого термина, но не нашел его на первых двух страницах документации.Что такое идентификатор ресурса изображения?

+0

См. Пример в руководстве - это ресурс изображения, который вы создали. Каждая функция GD, которую вы вызываете впоследствии, нуждается в этом идентификаторе изображения, чтобы узнать, с каким изображением он должен работать. –

+0

Переменная, которую вы затем можете использовать для идентификации конкретного изображения, с точки зрения php. Грубым эквивалентом будет HBITMAP в земле окон. – enhzflep

+0

Это, вероятно, просто объект, который представляет изображение для использования с другими методами обработки изображений и манипулирования ими. – mvw

ответ

6

Это просто специальный тип объекта для использования с gdlib. Другие функции потребуют использования этого ресурса в качестве параметра, такого как imagecolorallocate.

Он сохраняет информацию о изображении, которое вы создаете для дальнейшей модификации, с другими функциями позже.

Немного информации о ресурсах от php.net here

1

изображения идентификатора ресурса является структурой (в С точки зрения), определенной для хранения информации об изображении. Вот его определение в исходных текстах PHP:

typedef struct gdImageStruct { 
    /* Palette-based image pixels */ 
    unsigned char ** pixels; 
    int sx; 
    int sy; 
    /* These are valid in palette images only. See also 
     'alpha', which appears later in the structure to 
     preserve binary backwards compatibility */ 
    int colorsTotal; 
    int red[gdMaxColors]; 
    int green[gdMaxColors]; 
    int blue[gdMaxColors]; 
    int open[gdMaxColors]; 
    /* For backwards compatibility, this is set to the 
     first palette entry with 100% transparency, 
     and is also set and reset by the 
     gdImageColorTransparent function. Newer 
     applications can allocate palette entries 
     with any desired level of transparency; however, 
     bear in mind that many viewers, notably 
     many web browsers, fail to implement 
     full alpha channel for PNG and provide 
     support for full opacity or transparency only. */ 
    int transparent; 
    int *polyInts; 
    int polyAllocated; 
    struct gdImageStruct *brush; 
    struct gdImageStruct *tile; 
    int brushColorMap[gdMaxColors]; 
    int tileColorMap[gdMaxColors]; 
    int styleLength; 
    int stylePos; 
    int *style; 
    int interlace; 
    /* New in 2.0: thickness of line. Initialized to 1. */ 
    int thick; 
    /* New in 2.0: alpha channel for palettes. Note that only 
     Macintosh Internet Explorer and (possibly) Netscape 6 
     really support multiple levels of transparency in 
     palettes, to my knowledge, as of 2/15/01. Most 
     common browsers will display 100% opaque and 
     100% transparent correctly, and do something 
     unpredictable and/or undesirable for levels 
     in between. TBB */ 
    int alpha[gdMaxColors]; 
    /* Truecolor flag and pixels. New 2.0 fields appear here at the 
     end to minimize breakage of existing object code. */ 
    int trueColor; 
    int ** tpixels; 
    /* Should alpha channel be copied, or applied, each time a 
     pixel is drawn? This applies to truecolor images only. 
     No attempt is made to alpha-blend in palette images, 
     even if semitransparent palette entries exist. 
     To do that, build your image as a truecolor image, 
     then quantize down to 8 bits. */ 
    int alphaBlendingFlag; 
    /* Should antialias functions be used */ 
    int antialias; 
    /* Should the alpha channel of the image be saved? This affects 
     PNG at the moment; other future formats may also 
     have that capability. JPEG doesn't. */ 
    int saveAlphaFlag; 


    /* 2.0.12: anti-aliased globals */ 
    int AA; 
    int AA_color; 
    int AA_dont_blend; 
    unsigned char **AA_opacity; 
    int AA_polygon; 
    /* Stored and pre-computed variables for determining the perpendicular 
    * distance from a point to the anti-aliased line being drawn: 
    */ 
    int AAL_x1; 
    int AAL_y1; 
    int AAL_x2; 
    int AAL_y2; 
    int AAL_Bx_Ax; 
    int AAL_By_Ay; 
    int AAL_LAB_2; 
    float AAL_LAB; 

    /* 2.0.12: simple clipping rectangle. These values must be checked for safety when set; please use gdImageSetClip */ 
    int cx1; 
    int cy1; 
    int cx2; 
    int cy2; 
    gdInterpolationMethod interpolation_id; 
    interpolation_method interpolation; 
} gdImage; 
Смежные вопросы