Я просто хочу сказать, что я новичок в C. Хорошо, с этой точки зрения мое задание на рождественский перерыв состояло в том, чтобы создать программу, которая манипулирует изображением PNG в различных пути. Я сделал большую часть этого, но у меня возникла проблема при попытке написать программу, которая должна увеличить изображение. Я пробовал, и я получил что-то вниз. Хотя я уверен, что это все неправильно ...C - Изменить размер/увеличить изображение
void enlargeImage(Image plain, char *imageInput[])
{
Image tempImage;
Pixel** pixels;
int scale = 2;
pixels = malloc(plain.height * sizeof(Pixel*) *scale);
for (int i = 0; i < plain.height; i++)
{
pixels[i] = malloc(plain.width * sizeof(Pixel*) * scale);
}
tempImage.pixels = pixels;
tempImage.height = plain.height * scale; //Can I even do this?? Or is it completely wrong?
tempImage.width = plain.width * scale;
// I've tried a few variations of this code
for (int height = 0; height < plain.height; height++)
{
for (int width = 0; width < plain.width; width++)
{
tempImage.pixels[height][width] = plain.pixels[height][width];
}
}
writeImage(imageInput, &tempImage); //This is a function written by my teachers. This is also where I get an error. I'm suspecting it's because I've doubled the size of tempImage ??
free(tempImage.pixels);
}
Я был бы очень признателен, если кто-то может помочь мне ^^
Спасибо!
Распределение памяти вашего нового масштабированного изображения выглядит правильно. Неправильное назначение пикселей, хотя в цикле. Вы повторяете старый размер и устанавливаете только исходные пиксели изображения в масштабированном. Вы должны реализовать механизм для интерполяции исходных значений в новые позиции масштабированного изображения. Так как масштаб равен 2, вы можете сделать это для каждого второго пикселя строки изображения. –
Прошу прощения, но мы отвечаем на вопросы о конкретных проблемах программирования. Проверьте свою программу. Если это на самом деле неправильно, тогда приложите все усилия, чтобы выяснить проблему самостоятельно, прежде чем принести нам это конкретное проступка. –
@GregK. О, хорошо. Спасибо C: – Eva