Формат JPEG очень сложен, и КРАЙНЕ не рекомендую писать поддержку самому. Лучше пользоваться любой подходящей библиотекой. Вот, например, на Qt:
#include <QImage>
#include <QPainter>
int main()
{
QImage pix(100, 100, QImage::Format_RGB888);
pix.fill(Qt::darkBlue);
QPainter painter(&pix);
painter.setPen(QPen(Qt::yellow, 2.0));
painter.drawEllipse(QPoint(50, 50), 40, 30);
pix.save("test.jpg");
}
Приду домой — отыщу код на PHP, призванный уменьшать размер картинок. В общем, для любого современного языка библиотека найдётся.