Hi
Plugins allows us to write custom code to implement custom business logic, this could be just validation, or changing data or any type of operation really.
Now, plugin only triggers on Events (Messages), for example update or delete or create or other
If a Plugin triggers lets say on Update of a field, and lets assume in your plugin code you want to check what was the previous value and whats the new value.
You can only get to the previous value in plugin by asking CRM to give you a copy of the record just before the change was made - This is PreImage
You also want to know whats the new value, for this you are getting the Post Image - The post image is copy of the record after the change but it is not yet fully committed to database. if the plugin fails for some reason, any change in the post image will be lost.
In short, Pre and Post images are just copies of data before change and data after the change. And Post image will only become permanent if the plugin execution completed with no error. If there was an exception in plugin execution, the entire transaction will be rolled back.