LINUX.ORG.RU

ImageMagick & FastCGI, c/c++


0

1

Добрый день, сообщество!

Этот код работает:

#include <Magick++.h>
#include <iostream>

using namespace std;
using namespace Magick;

int main(int argc,char **argv) 
{
    Image im( "01.png"); 
    cout << "Content-type: image/png\n\n";
    im.write("png:-");                     //Подсказали на этом сайте
    return 0; 
}

Необходимо преписать под FastCGI, пробую:

#include <Magick++.h>
#include <fcgi_stdio.h>

using namespace Magick;

int main (int argc, char **argv)
{
    while (FCGI_Accept() >= 0)   {
        Image im( "01.png"); 
        printf("Content-type: image/png\n\n");
        im.write("png:-");
    }
    return 0;
}

Выводит в браузер битую картинку. Помогите разобраться, спасибо.


Привет. У тебя скорее всего ошибка не ImageMagick, а в FastCGI.

Вообще лучше бы ты не на Си с FastCGI работал, а, например, на perl.

Если дружишь с perl, могу суда запостить рабочий пример работы с FastCGI. А дале уже к нему можешь прикрутить ImageMagick, поскольку перл прекрасно с ним работает.

Mrak ★★★ ()
Ответ на: комментарий от Mrak

> Вообще лучше бы ты не на Си с FastCGI работал, а, например, на perl.

тогда я тоже в свою очередь посоветую о том что нада работать не с C/C++ и не с Perl а с Python

(FastCGI->flup->WSGI->твой_скрипт — это довольно стандартный и бэстрый стэк)

ImageMagick -с-точки-зрения-python-> пакет «python-pythonmagick» (пакет «PythonMagick» в терминах Python)

user_id_68054 ★★★★★ ()

а давайте каждый кто заходит в эту тему — будет советовать свой любимый язык программирования? :-)

user_id_68054 ★★★★★ ()
Ответ на: комментарий от user_id_68054

Отличная идея) В сети встречал кучу примеров perl+imagick. Вообще хотелось все это дело реализовать на c\c++ из-за скорости и ограниченного объема ресурсов.

А что может быть не так с fastcgi?

Guffi ()
Ответ на: комментарий от Guffi

Можно конечно писать FastCGI на Си... но от этого отказались по ряду причин.

1. Скриптовые языки и так быстро работают, а если они еще и сидят в памяти (как в случае в FastCGI), тогда вообще проблем со скоростью нет
2. Легче модифицировать код и перезапускать FastCGI скрипт, в отличие от компиляции Си программы
3. Если же есть проблема в производительности в perl можно использовать функции из Си, например http://search.cpan.org/~ingy/Inline-0.44/C/C-Cookbook.pod#mod_perl

В общем вечером приду... выложу суда код рабочего примера FastCGI

Mrak ★★★ ()

Может есть еще идеи, как заставить работать этот скрпит в fast-cgi?

Guffi ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.