LINUX.ORG.RU

Сообщения slendy

 

Ресайз графики в GTK+

Для сабжа отсылают к gdk_pixbuf_scale, cairo, imagemagick etc. Это преобразование самой картинки, и достаточно накладно.

Пример окна с гифками: http://pastebin.com/jKCvs5qB Сама гифка: http://rgho.st/6J2KP746Q

При этом в Firefox то же самое отображается заметно быстрее, а изменение масштаба выполняется, практически, без задержки.

HTML: http://pastebin.com/mnYvYBPP

Не похоже, что там пиксельная трансформация. Как они это делают?

 , ,

slendy
()

Итератор из функции

#include <stdio.h>

void func()
{
	for (int i = 1; i <= 4; i++) {
		printf("%d\n", i);
	}
}

int main()
{
	func();
	return 0;
}

Можно это переделать, чтобы использование func() было в стиле

int main()
{
	while ((i = func()) != NULL) {
		printf("%d\n", i);
	}
	return 0;
}

без сохранения всего результата выполнения for{} в память?

 

slendy
()

Plain C phash

Решил вот, в виду освоения Сишечки, сделать phash для картинок. Если кто из адептов посмотрит и прокомментирует, буду признателен.

http://pastebin.com/Abw1Xvb0

Собирается так:

gcc -std=c99 -O2 -Wall -Wextra -Werror -pedantic -o phash `pkg-config --cflags --libs MagickWand` -lm phash.c

 ,

slendy
()

Plain C: вызов функции в цикле (нубское)

#include <stdio.h>

int main()
{
	char s1[] = "01100001111010110110101111001011";
	char s2[] = "11100111011010100110110101000001";
	
	int i;
	for (i = 1; i <= 8; i++) {
		int d = dist(s1, s2);
		printf("%d %d\n", i, d);
	}
	
	return 0;
}

int dist(char s1[], char s2[])
{
	int d;
	
	int i;
	for (i = 0; i < 32; i++) {
		if (s1[i] != s2[i]) {
			d += 1;
		}
	}
	
	return d;
}

Почему только первая итерация дает 10, а остальные разные числа, причем меняющиеся?

 ,

slendy
()

RSS подписка на новые темы