[#1] Jak zamienic Bitmap na ImageData
Czesc,
tak bym mogl uzyc obrazka np w gadgecie typu BUTTON?

Dzieki

Ostatnia aktualizacja: 16.09.2019 14:19:24 przez peceha
[#2] Re: Jak zamienic Bitmap na ImageData

@peceha, post #1

Tak się akurat składa, że stosuję tę technikę ostatnio w moim programie (Magazyn).
Poniżej masz funkcję konwersji z BitMapy na ImagaData, która działa w ten sposób, że tworzy po prostu pomocniczą strukturę BitMap i kopiuje dane z jednej bitmapy do drugiej.

Przy czym w moim programie korzystam z bardziej rozbudowanej wersji, która wycina z BitMapy dowolny prostokąt.

#define WordWidth(w) (((w)+15)>>4) /* Szerokość w słowach */

UWORD *BitMapToImageData(struct BitMap *bm)
{
	struct BitMap auxbm; /* Pomocnicza bitmapa */
	UWORD *ImageData, *cur;
	WORD width = GetBitMapAttr(bm, BMA_WIDTH);
	WORD height = GetBitMapAttr(bm, BMA_HEIGHT);
	WORD depth = GetBitMapAttr(bm, BMA_DEPTH);
	LONG planesize = WordWidth(width) * height; /* Rozmiar bitplanu w słowach */
	WORD p;

	if (ImageData = AllocVec(planesize * depth * sizeof(UWORD), MEMF_CHIP))
	{
		InitBitMap(&auxbm, depth, width, height);
		auxbm.Planes[0] = (PLANEPTR)(cur = ImageData);
		for (p = 1; p < depth; p++)
		{
			auxbm.Planes[i] = (PLANEPTR)(cur += planesize);	
		}
		BltBitMap(bm, 0, 0, &auxbm, 0, 0, width, height, 0xc0, 0xff, NULL);
		WaitBlit();
		return(ImageData);
	}
	return(NULL);
}


Ostatnia aktualizacja: 16.09.2019 14:38:27 przez Hexmage960
[#3] Re: Jak zamienic Bitmap na ImageData

@Hexmage960, post #2

OK
Super!
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem