/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/gd/libgd/gd_transform.c
71 строка
1 KB
Pierre Joye
- add image flip API support
27 фев 2013, 13:37
27 фев 2013, 13:37
246de92
Код
Авторство
О чём код?
#include "gd.h" void gdImageFlipVertical(gdImagePtr im) { register int x, y; if (im->trueColor) { for (y = 0; y < im->sy / 2; y++) { int *row_dst = im->tpixels[y]; int *row_src = im->tpixels[im->sy - 1 - y]; for (x = 0; x < im->sx; x++) { register int p; p = row_dst[x]; row_dst[x] = im->tpixels[im->sy - 1 - y][x]; row_src[x] = p; } } } else { unsigned char p; for (y = 0; y < im->sy / 2; y++) { for (x = 0; x < im->sx; x++) { p = im->pixels[y][x]; im->pixels[y][x] = im->pixels[im->sy - 1 - y][x]; im->pixels[im->sy - 1 - y][x] = p; } } } return; } void gdImageFlipHorizontal(gdImagePtr im) { int x, y; if (im->trueColor) { int *px1, *px2, tmp; for (y = 0; y < im->sy; y++) { px1 = im->tpixels[y]; px2 = im->tpixels[y] + im->sx - 1; for (x = 0; x < (im->sx >> 1); x++) { tmp = *px1; *px1 = *px2; *px2 = tmp; px1++; px2--; } } } else { unsigned char *px1, *px2, tmp; for (y = 0; y < im->sy; y++) { px1 = im->pixels[y]; px2 = im->pixels[y] + im->sx - 1; for (x = 0; x < (im->sx >> 1); x++) { tmp = *px1; *px1 = *px2; *px2 = tmp; px1++; px2--; } } } } void gdImageFlipBoth(gdImagePtr im) { gdImageFlipVertical(im); gdImageFlipHorizontal(im); }