OlegN
|
опубликован 03-05-2001 11:51 MSK
В MSDN-e есть пример : ShowDIB: Opening/Displaying Device Independent Bitmaps В нем необходимо разобраться, но вместо чтения DIB-ов (.bmp файлов) из файла, необходимо читать из области памяти, в которую предварительно ты читаешь из BLOB(СLongBinary) поля БД, в которой находится изображение. А "запихивать" (ну и словечко :-) bmp файлы в BLOB поле базы данных очень просто: читаешь bmp файл в область памяти, а потом ее записываешь в поле БД. Если есть функции прямой записи файла в BLOB поле, то используй их. Но это дилетантский (студенческий) подход. Его недостатки : 1.Нельзя записывать изображения разных форматов (BMP, GIF, JPEG, TIFF, PNG) в одно поле БД. 2.В поле БД можно хранить только BMP файлы, которые не поддерживают эффективную компрессию изображения в отличие от (JPEG, GIF, PNG), что скажется на размерах БД. 3. Если изображение большое, то показать качественно в миниатюре, (судя по лексике твоего письма) ты не сможешь. Стандартная функция StretchDIBits работает медленно и некачаственно в режиме уменьшения изображения. 4. Печать изображения (опять-же используя стандартные GDI функции) будет хуже чем в Word-e, не говоря уже о сравнении с графическими редакторами.Если ты делаешь коммерческий продукт, то можешь сходить на страницу : http://www.vimas.com/ve_image_sdk.htm, но там SDK за деньги. Или сам можешь накачать библиотек по чтению/обработке изображений (они в inet-e есть) и если располагаешь 3-4 месяцами свободного времени, то можешь слепить что-то свое, которое будет и читать и рисовать быстро и качественно. |