![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменить глубину цвета у Image [D5, D6, Win95/98]
dim- © (2002-12-17 00:24:00)Как можно Изменить глубину цвета у Image и сохранить с расширением jpg (чтобы как можно меньше занимал места)
dim- (2002-12-19 12:23:00) [1]Спасибо Мышка, очень помогло
Rouse_ (2002-12-19 00:55:00) [2]> Anatoly Podgoretsky © (17.12.02 09:28)
> Открою тайнц, не все просмотровщики могут открыть и JPEG
Анатолий, нельзя ли поподробнее, для некоторых моих программ это критично, они выводят данные в JPEG. Где подводные камни?
Заранее спасибо
Мышь (2002-12-19 00:40:00) [3]Как над качеством не издевайся, все равно, если в JPG точек много, он будет занимать МЕСТО :) Поэтому, видимо, стоит уменьшить разрешение при сканировании.
И, потом, если это документы, то их не каждую минуту из Базы берут => можно пожать дополнительно каким-нибудь архиватором, но с JPG это не пройдет - меньше он не станет, так что лучше TIFF.
А еще JPG бывает GrayScale, то есть его размер должен существенно уменьшиться. Поищи такую настроечку.
Успехов!
dim- (2002-12-18 12:12:00) [4]Ну народ, может кто знает как палитру сменить, чтобы не полноцветная была, а черно-белая.
делаю так: сканирую в image1 страницу текста
image1.Picture.Bitmap.PixelFormat:=pf8bit;
image1.Picture.Bitmap.Assign(jpg);
jpg.CompressionQuality := 30;
jpg.Performance := jpBestSpeed;
jpg.Assign(image1.Picture.Graphic);
jpg.SaveToFile(dirpath);
но результат как 130-200 Kb на страницу так и остается, а тотже FotoEdit 60Kb на ту же страницу
dim- (2002-12-17 16:56:00) [5]Ну народ, может кто знает как палитру сменить, чтобы не полноцветная была, а черно-белая.
делаю так: сканирую в image1 страницу текста
image1.Picture.Bitmap.PixelFormat:=pf8bit;
image1.Picture.Bitmap.Assign(jpg);
jpg.CompressionQuality := 30;
jpg.Performance := jpBestSpeed;
jpg.Assign(image1.Picture.Graphic);
jpg.SaveToFile(dirpath);
но результат как 130-200 Kb на страницу так и остается, а тотже FotoEdit 60Kb на ту же страницу
dim- (2002-12-17 10:10:00) [6]Надо стандартными, дельфовыми средствами, или бесплатными
- Andrew - (2002-12-17 10:05:00) [7]Ставь себе Envision Image Library и наслаждайся.
А в базу лучше все-таки Tiff кидать, как правильно сказал app.
Anatoly Podgoretsky (2002-12-17 09:28:00) [8]Открою тайнц, не все просмотровщики могут открыть и JPEG
dim- (2002-12-17 09:22:00) [9]Tiff это конечно хорошо, но его вроде не все просмотрщики могут открыть
app (2002-12-17 09:16:00) [10]Тебе надо смотреть не в сторону JPEG, а в сторону GIF/TIFF, может даже именно в сторону TIFF он для этого предназначен.
Данные форматы без потери качества, сжатие тоже есть, в итоге у тебя не будет грязи на документе и размер будет меньше, единственной проблемой является то, что тебе надо будет найти подходящую библиотеку.
dim- (2002-12-17 09:02:00) [11]у меня сканируемые документы, то есть черно-белые, будут храниться в Базе Данных, вот и нужен размер по меньше
Моджахед жив (2002-12-17 02:35:00) [12]Но, в общем, зависит от картинки. Если там кнопочка на 256 цветов, которые, отбросив оттенки нормально визуально сводятся к 16, то тогда имеет смысл сделать TBitmap.PixelFormat=pf8bit а джейпег при сжатии возрадуется. Но в итоге джепег будет все-равно 24битным.
Моджахед жив (2002-12-17 02:29:00) [13]Jpeg имеет 24-битный формат, хоть ты тресни. Тут ничего не поделаешь. Впрочем, если брать картинку из TBitmap,
то можно задать что угодно, см. TBitmap.PixelFormat, а потом дуй ее в джейпег. Но выигрыш будеть маленький.
Хотя TJPEGImage.PixelFormat имеется тоже. Но писаться будет все равно в 24 бита. Лучше сначла битмэп упростить до
убожества, а потом пихать в джейпег.
Vagrant (2002-12-17 02:12:00) [14]В догонку: Забыл освободить JPG :-o
FreeAndNil(jpg);
Vagrant (2002-12-17 02:09:00) [15]Примерно так:
Varjpg: TJPEGImage;
Begin
jpg := TJPEGImage.Create;
jpg.CompressionQuality := 50; // Процент сжатия
jpg.Assign(Image.picture.bitmap);
jpg.SaveToFile("Lalala.jpg");
End;