Bitmap
является визуальным представлением BitmapData
.Он наследует от DisplayObject
, что означает, что он имеет свойства для позиционирования, такие как x
и y
и для размера, такого как width
и height
, среди прочего.
BitmapData
содержит большойколичество свойств и методов, строго связанных с представлением изображения, а не самого видимого изображения.Вы можете много поработать с BitmapData
, прежде чем фактически отобразить то, что оно представляет, если оно вообще есть.Не имеет смысла объединять два класса.Вот несколько причин:
- Несколько экземпляров Bitmap могут ссылаться на один экземпляр BitmapData, экономя много памяти и повышая производительность.В моем игровом движке есть только один экземпляр Bitmap в DisplayList, но все игровые объекты имеют свою собственную ссылку на фрагмент BitmapData, который будет действовать как его визуальный элемент.
- Я не хочунеобходимо создать целый экземпляр Bitmap (который является большим) только для работы с его BitmapData.Гораздо более разумно просто иметь значительно более легкий весовой класс, выполняющий нужную вам работу.
- Один экземпляр Bitmap может извлекать информацию о порциях из неограниченного количества экземпляров BitmapData и затем отображать их.Не кажется логичным, что Bitmap и BitmapData представляют собой один класс с учетом этого, поскольку с точки зрения ООП может показаться, что этот единственный класс должен представлять только один графический объект.
- Они просто не являютсятоже самое.Они могут работать друг без друга и имеют для этого практическое и общее использование.
Есть много других причин, но это только несколько.