- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
С'шная либа: http://fossies.org/dox/imlib2-1.4.5/image_8c_source.html
смотрим код сохраняющий картинку:
1241 __imlib_SaveImage(ImlibImage * im, const char *file,
1242 ImlibProgressFunction progress, char progress_granularity,
1243 ImlibLoadError * er)
..........................................
..........................................
1290 *er = IMLIB_LOAD_ERROR_UNKNOWN;
1291 if (errno == EEXIST)
1292 *er = IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST;
1293 else if (errno == EISDIR)
1294 *er = IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY;
1295 else if (errno == EISDIR)
1296 *er = IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY;
1297 else if (errno == EACCES)
1298 *er = IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE;
1299 else if (errno == ENAMETOOLONG)
1300 *er = IMLIB_LOAD_ERROR_PATH_TOO_LONG;
1301 else if (errno == ENOENT)
1302 *er = IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT;
1303 else if (errno == ENOTDIR)
1304 *er = IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY;
1305 else if (errno == EFAULT)
1306 *er = IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE;
1307 else if (errno == ELOOP)
1308 *er = IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS;
1309 else if (errno == ENOMEM)
1310 *er = IMLIB_LOAD_ERROR_OUT_OF_MEMORY;
1311 else if (errno == EMFILE)
1312 *er = IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS;
1313 else if (errno == ENOSPC)
1314 *er = IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE;
1315 else if (errno == EROFS)
1316 *er = IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE;
обращаем внимание на строки *er =
в них записываются разные типы ошибок, обращаем внимаение на то, сколько типов используется
теперь берем перловую обертку: Image::Imlib2 (http://search.cpan.org/~lbrocard/Image-Imlib2-2.03/lib/Image/Imlib2.pm)
находим метод сохранения картинки, он в xs части lib/Image/Imlib2.xs
void
Imlib2_save(image, filename)
Image::Imlib2 image
char * filename
PROTOTYPE: $$
CODE:
{
Imlib_Load_Error err;
imlib_context_set_image(image);
imlib_save_image_with_error_return(filename, &err);
if (err != IMLIB_LOAD_ERROR_NONE) {
Perl_croak(aTHX_ "Image::Imlib2 save error: Unknown error");
}
}
imlib_save_image_with_error_return вызывает в конечном итоге __imlib_SaveImage из C'шной либы
обращаем внимание на то, как теперь подробно можно узнать о том, почему не удалось сохранить картинку
пример вывода такого кода в случае ошибки:
Image::Imlib2 save error: Unknown error at BL/Class/Image.pm line 608.
до тех пор, пока есть такие гении, я не беспокоюсь о своем хлебе
guest 18.10.2013 12:45 # −10
m0r1k 18.10.2013 12:50 # 0
Horse2 18.10.2013 14:21 # −9
blackhearted 18.10.2013 12:51 # 0
Horse2 18.10.2013 14:21 # −10
WGH 18.10.2013 14:03 # 0
m0r1k 18.10.2013 14:07 # −1
Посты можно редактировать?
WGH 18.10.2013 14:08 # +3
m0r1k 18.10.2013 14:09 # −1
Horse2 18.10.2013 14:16 # −12
Horse2 18.10.2013 14:19 # −11
3.14159265 18.10.2013 19:36 # +5
Из возможностей:
- рабочие ссылки
- разные способы подсветки кода
- увеличенное до суток время редактирования комментария
- возможность писать личные сообщения владельцам других улучшенных аккаунтов
- персональные языковые разделы, настраиваемые как фильтры в почте
- можно крепить картинки к говнокоду (возможности как в АиБ http://govnokod.ru/5555)
- игнор-лист неугодных пользователей. автоминусование - опционально.
- rss стока
- и наконец возможность писать в тред сообщения, видимые только владельцам других улучшенных аккаунтов
defecate-plusplus 18.10.2013 20:52 # +1
особенно в сравнении с adobe creative clown
или с ценой пожрать обед
Horse2 18.10.2013 14:19 # −11
Horse2 18.10.2013 14:19 # −11
Horse2 18.10.2013 14:19 # −10
Horse2 18.10.2013 14:14 # −11
guest 19.10.2013 09:30 # −16
Horse2 18.10.2013 14:20 # −9
Horse2 18.10.2013 14:20 # −12
guest 18.10.2013 14:48 # +2
Stertor 18.10.2013 14:51 # +5
Qwertiy 19.10.2013 00:16 # +1
А на это не обращаем?
m0r1k 19.10.2013 08:31 # −1
Dummy00001 19.10.2013 00:31 # −2
PS попробуй еще imagemagick.
anonimb84a2f6fd141 19.10.2013 06:52 # −2
Починил.
guest 19.10.2013 09:30 # −16
gh0stwizard 19.10.2013 12:34 # −1
m0r1k 19.10.2013 13:30 # −7
guest 19.10.2013 13:47 # +2
Horse2 19.10.2013 13:54 # −16