Thanks for the information! I wanted to read the pixel for my own save function that I am writing, so even if it was slow I would not bother. I want to use pixman to replace Allegro4 bitmaps.
>From your reply, I think that I need to convert the full bitmap to a different format that a .bmp file accepts and then write these converted bits to the stream all in one go. I still don't know how to do that. :/ I am sorry, I didn't mean a direct reply, I wanted to email the mailist actually but I misclicked the reply to all. On Mon, Jul 13, 2020, 04:29 Pekka Paalanen <ppaala...@gmail.com> wrote: > On Sun, 12 Jul 2020 23:24:51 -0300 > Erico P <eri0o...@gmail.com> wrote: > > > Thanks! > > > > I am trying to get started but I need to read and write bitmaps to see > what > > I am doing. I made a function to write bitmaps from my own, and made up > > some function to read. I can't seem to find anything readymade that > > supports all formats available in pixman (r8g8b8a8, ...). > > Hi, > > Pixman's format support is so wide and wild (from 1-bit formats > where endianness affects also bit order within a byte, to floating > point formats nowdays IIRC), that I doubt you will find even a > file format that supports everything as is - or if you do, it's > really complicated. > > > I have a small problem that I can't seem to figure out, is there a > function > > to read or write a single pixel? Maybe it returns an int, or a color > (for a > > 32bit bmp), or the index of the palette in case it's an indexed bitmap? > It > > would be really useful for me to be able to read a single pixel, is > there a > > function for this I am overlooking? > > I don't think there is, maybe because using it would make things > slow so no-one wanted it. Instead, if you need to, you get the > pointer to the beginning of the data, compute the appropriate > offset from stride, format and position, and access the bits > yourself according to the format. > > > https://ppaalanen.blogspot.com/2016/02/a-programmers-view-on-digital-images.html > and > https://afrantzis.com/pixel-format-guide/ > might help. > > You might also mimick that by doing a blit with > pixman_image_composite32() from your source image into a 1x1 target > image in your preferred inspection format. > > I'd recommend using just few carefully selected formats for your > input/output and use Pixman itself to convert to/from those. > > If you want to continue the chat, I would like to keep it on the > mailing list to benefit everyone and you might get more help, too. > It would be nice to CC this reply to the mailing list. > > > Thanks, > pq > > > > > Em qua., 8 de jul. de 2020 às 13:23, Pekka Paalanen <ppaala...@gmail.com > > > > escreveu: > > > > > On Wed, 8 Jul 2020 11:43:59 -0300 > > > Erico P <eri0o...@gmail.com> wrote: > > > > > > > Hello, > > > > > > > > I foundout about pixman recently as a recommended library for > efficiently > > > > drawing pixels, apparently used when writing a rasterizer and some > other > > > > use cases in GUIs too. > > > > > > > > I want to learn how to use it, but unfortunately the webpage states > > > "There > > > > is currently no documentation besides the source code itself." > > > > > > > > Is there any documentation available at all, maybe something > someone > > > wrote > > > > some day for someone, anything other than just the source? Maybe a > manual > > > > from someone who ported it to other language - but I do intend to > use it > > > in > > > > a mixed C/C++ environment. > > > > > > > > I appreciate any suggestions on getting started with it! > > > > > > Hi, > > > > > > I'm not aware of anything particularly about Pixman, unfortunately. > > > You'll have to go through code that uses Pixman. > > > > > > If you want to do rectangular operations, > > > pixman_image_composite32() is the main function for practically > > > everything. I've used that one, but I never looked into the > > > trapezoid or font compositing stuff. > > > > > > > > > > https://gitlab.freedesktop.org/wayland/weston/-/blob/master/libweston/pixman-renderer.c > > > is one of Weston compositor's renderers that has a relatively > > > simple task of just copying and blending window images. Weston also > > > uses pixman_region32 for most region tracking and operations. > > > > > > http://ssp.impulsetrain.com/porterduff.html > > > explains the Porter/Duff compositing operations. Some or all of > > > those are found in pixman_image_composite32(). It doesn't mention > > > the use of a mask though. > > > > > > Since Cairo can use Pixman underneath, I think some Cairo > > > documentation about the image operations are applicable as well: > > > https://www.cairographics.org/tutorial/ > > > > > > > > > Thanks, > > > pq > > > > > > -- > Pekka Paalanen > http://www.iki.fi/pq/ >
_______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/pixman