Hatena::Groupsubtech

sexさんのブログ RSSフィード

2007-11-15

imlib2を使ってる 16:18  imlib2を使ってる - sexさんのブログ を含むブックマーク はてなブックマーク -  imlib2を使ってる - sexさんのブログ  imlib2を使ってる - sexさんのブログ のブックマークコメント

imlib2をPerlからじゃなく、じかにCのライブラリとして使ってるのだが生のデータを取り出す関数がないようだ…。なんでやねん。

gd2は微妙(?) 16:22  gd2は微妙(?) - sexさんのブログ を含むブックマーク はてなブックマーク -  gd2は微妙(?) - sexさんのブログ  gd2は微妙(?) - sexさんのブログ のブックマークコメント

imlib2を使う前にgdの2系を使ってみようと思っていじってたんだけど、gd2はだめだね。

なんでだめかって、gd2になってからgifを取り扱わない方針みたいなんですよね。

たぶん例のライセンスとかの問題だと思うけど。

一応、使えるようにするパッチはあるのでそれを適用すりゃいいんだけど若干手間かかるし。

で、gifを扱いたければ、2系じゃなくて1系のgdであればいいらしい。

で、1系のgdを使おうと思ったんだけど、そこでimbli2ってあったなというのを思い出し、

↑で書いたimlib2を使い始めたという次第です。

追記

gd2がgifをサポートしていないのは間違いでした。現在のgd2はサポートしている模様。

ちなみにimlib2を選んだ理由はもう1つあって、gdは画像の形式毎に読み込む関数が別で、imlib2だと1つの関数でそれができるという利点がありimlib2を使ってみようと思いました。

Cでmkdirを再帰的にしたいとき 19:47  Cでmkdirを再帰的にしたいとき - sexさんのブログ を含むブックマーク はてなブックマーク -  Cでmkdirを再帰的にしたいとき - sexさんのブログ  Cでmkdirを再帰的にしたいとき - sexさんのブログ のブックマークコメント

static void recursive_mkdir(char *d)
{
    char *tok, *path;
    int len;
    struct stat sb;

    len = strlen(d) + 1;
    path = malloc(len + 1);

    tok = strtok(d, "/");
    snprintf(path, len, "/%s", tok);
    while(1) {
        if(stat(path, &sb) < 0) {
            // The path element didn't exist
            mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
        }

        if(!S_ISDIR(sb.st_mode)) {
            printf("Path element not a directory\n");
            exit(3);
        }

        tok = strtok(NULL, "/");
        if(!tok)
            exit(0);
        strncat(path, "/", len);
        strncat(path, tok, len);
    }
    return;
}
トラックバック - http://subtech.g.hatena.ne.jp/clouder/20071115