Сохранение растрового изображения в файл JPG: несколько методов с примерами кода

Чтобы сохранить растровое изображение в файл в формате JPG, вы можете использовать различные языки программирования и библиотеки в зависимости от ваших конкретных потребностей. Ниже я приведу примеры на трёх популярных языках: Python, C++ и Java.

  1. Python:
    В Python вы можете использовать библиотеку Pillow, которая представляет собой мощную библиотеку обработки изображений. Вот пример того, как сохранить растровое изображение в файл JPEG:
from PIL import Image
def save_pixmap_to_jpg(pixmap, filename):
    image = Image.frombytes("RGBA", pixmap.size(), bytes(pixmap.bits()))
    image.save(filename, "JPEG")
# Example usage
pixmap = ...  # Your pixmap data
filename = "output.jpg"
save_pixmap_to_jpg(pixmap, filename)
  1. C++:
    В C++ вы можете использовать библиотеку OpenCV, которая предоставляет широкие возможности обработки изображений. Вот пример того, как сохранить растровое изображение в файл JPEG:
#include <opencv2/opencv.hpp>
void savePixmapToJpg(const QPixmap& pixmap, const std::string& filename) {
    cv::Mat image(pixmap.height(), pixmap.width(), CV_8UC4, const_cast<uchar*>(pixmap.bits()), pixmap.bytesPerLine());
    cv::cvtColor(image, image, cv::COLOR_RGBA2BGR);
    cv::imwrite(filename, image);
}
// Example usage
QPixmap pixmap = ...;  // Your pixmap data
std::string filename = "output.jpg";
savePixmapToJpg(pixmap, filename);
  1. Java:
    В Java вы можете использовать библиотеку Java Advanced Imaging (JAI) для сохранения растрового изображения в формате JPEG. Вот пример:
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.JPEGEncodeParam;
public void savePixmapToJpg(Pixmap pixmap, String filename) throws Exception {
    int[] data = pixmap.getPixels();
    int width = pixmap.getWidth();
    int height = pixmap.getHeight();
    RenderedImage renderedImage = new RenderedImage(width, height);
    renderedImage.setPixels(0, 0, width, height, data);
    FileSeekableStream stream = new FileSeekableStream(filename);
    JPEGEncodeParam param = new JPEGEncodeParam();
    ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG", stream, param);
    encoder.encode(renderedImage);
    stream.close();
}
// Example usage
Pixmap pixmap = ...;  // Your pixmap data
String filename = "output.jpg";
savePixmapToJpg(pixmap, filename);

Эти примеры демонстрируют, как сохранить растровое изображение в файл JPEG, используя разные языки программирования. Не забудьте заменить заполнители (...) фактическими данными растрового изображения.