powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
11 сообщений из 11, страница 1 из 1
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37209830
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сам вопрос и мое тест приложение, которое это делает (через GDI+/- + encoders) здесь:
Вписать "горизонтальную" картинку в 1728х2340, черные поля, а надо чтоб были белые!
Дмитрий77Теперь задумался над:
2) там используется "черно-белый" при сохранении. Если конвертировать цветную картинку, то будет "сильно намазано черным", нормальные "принтеры" делают "в градациях серого" (при этом результирующий tiff будет того же формата что и у меня, но картинка будет смотреться совершенно по-другому). Позже могу скинуть примеры таких конвертаций. Т.е. как это облагородить?
Но подозреваю что фотоэффект на 2-цветной картинке (ч/б глубина=1 а не глубина=8) делается какими-то нелинейными махинациями. Суть в чем: если уже есть такая "в сером" картинка, то мое преобразование ее не портит, а если бухаю на свой вход цветной оригинал, то на моем выходе получаю черную мазню. Хочу "в сером".
Иллюстрирую на картинке:

Чтобы было ясно что я не туплю и не обманываю (т.е. глубина цвета ==1 на обоих нижних рисунках), все 3 картинки во вложении по ссылке ниже:


Понятно, что хочу как справа внизу. Понятно что можно сделать 8-битный tiff и будет то же и даже лучше.
Но нужно чтоб это было ч/б т.е. кодировано черный/белый.

Есть в GDI+/- или в encoders параметры, чтобы так сделать?
Или как это вообще делается (на примерах кода).
Подозреваю, что достигается хитрой комбинацией чередования белых и черных квадратиков.
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37210992
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал кое-что.
SetStretchBltMode Function
HALFTONE
Maps pixels from the source rectangle into blocks of pixels in the destination rectangle. The average color over the destination block of pixels approximates the color of the source pixels.
After setting the HALFTONE stretching mode, an application must call the SetBrushOrgEx function to set the brush origin. If it fails to do so, brush misalignment occurs
.
Это применяется перед тем как проецировать рисунок на новое hdc
Код: plaintext
1.
    SetStretchBltMode hdcDst, HALFTONE
    SetBrushOrgEx hdcDst,  0 ,  0 , tPt
Не уверен, что нужна вторая ф-ция (но майкрософт настаивает)
Короче вроде получается чего хочу (тек. проект прилагается)
Но есть одно но:
Пример конвертации
Получается очень большой файл (порядка мегабайта)
1) ощущение что темновато
надо б осветлить (Halftone Brightness)
2) ощущение что уж очень винды хорошую точность сделать пытаются
В венте напр. есть параметры:
Код: plaintext
1.
2.
3.
4.
5.
6.
Автовыбор
Супер-ячейка
2х2
4х4
Сглаживание 6х6
Сглаживание 8х8
10х10
В общем смысл в том что мегабайтный файл типа того что в ZIP-е выше идет по факсу около 10 минут на 14400, что мягко скажем многовато. И эти "излишки" кажется частенько "портят" изображение.
Функций gdi+/- кот. бы регулировали сглаживание/яркость я пока не нашел.
На C-шном форуме дали ссылку
About Pic2HTML
но вычислять самому каждый пиксель последовательным приближением желания точно нет. Нужно что-то более высокоуровневое.
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37211011
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

есть вариант с GDI+, но он не универсален (а то и "левый"), так как требует GDI+ версии больше 1.0. Проблема в том, что нет (вроде бы) redistributable-пакета установки версии 1.1, например, для XP или 2000. Да и в Windows 7 надо (опять таки "вроде бы" - не занимался) какие-то усилия прикладывать, манифест писать. Я как-то хотел пощупать новые относительно 1.0 фичи и нашёл в общей папке офиса версию gdiplus.dll, видимо, занимающую промежуточное положение между 1.0 и 1.1.

Собственно, код (добавка к классу ):
В описаниях:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Private Declare Function GdipCloneImage Lib "D:\Programs\Microsoft Office\OFFICE11\gdiplus" ( _
   ByVal nImage As Long, nCloneImage As Long) As GpStatus
Private Enum PaletteFlags
  PaletteFlagsHasAlpha =  1 
  PaletteFlagsGrayScale =  2 
  PaletteFlagsHalftone =  4 
End Enum
Private Type ColorPalette
   Flags As PaletteFlags   ' Palette flags
   Count As Long           ' Number of color entries
   Entries As Long         ' Palette color entries; this CAN be an array!!!! (Use CopyMemory and a string or byte array as workaround)
End Type

'===================== GDI+ 1.1 ========================
Private Enum DitherType
   DitherTypeNone =  0 
   DitherTypeSolid =  1 
   DitherTypeOrdered4x4 =  2 
   DitherTypeOrdered8x8 =  3 
   DitherTypeOrdered16x16 =  4 
   DitherTypeOrdered91x91 =  5 
   DitherTypeSpiral4x4 =  6 
   DitherTypeSpiral8x8 =  7 
   DitherTypeDualSpiral4x4 =  8 
   DitherTypeDualSpiral8x8 =  9 
   DitherTypeErrorDiffusion =  10 
End Enum
Private Enum PaletteType
  PaletteTypeCustom =  0 
  PaletteTypeOptimal =  1 
  PaletteTypeFixedBW =  2 
  PaletteTypeFixedHalftone8 =  3 
  PaletteTypeFixedHalftone27 =  4 
  PaletteTypeFixedHalftone64 =  5 
  PaletteTypeFixedHalftone125 =  6 
  PaletteTypeFixedHalftone216 =  7 
  PaletteTypeFixedHalftone252 =  8 
  PaletteTypeFixedHalftone256 =  9 
End Enum
Private Declare Function GdipBitmapConvertFormat Lib "D:\Programs\Microsoft Office\OFFICE11\gdiplus" ( _
   ByVal nBitmap As Long, ByVal PixelFormat As PixelFormats, _
   ByVal DitherType As DitherType, ByVal PaletteType As PaletteType, _
   ByVal nPalette As Long, ByVal alphaThresholdPercent As Single) As GpStatus
Private Declare Function GdipInitializePalette Lib "D:\Programs\Microsoft Office\OFFICE11\gdiplus" ( _
   ByVal nPalette As Long, ByVal PaletteType As PaletteType, _
   ByVal optimalColors As Long, ByVal useTransparentColor As BOOL, _
   ByVal nBitmap As Long) As GpStatus
Путь к библиотеке, естественно, нужно писать свой, причём во всех Declare в классе, относящихся к gdiplus. Это заплатка, только чтобы заработало, в реальном коде её пришлось бы обходить путём написания функций-обёрток, вызывающих функции из DLL по адресу.
Код конвертации формата:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Public Sub TestConvertFormat(ByVal FileName As String)
 Dim nBitmap As Long
 Dim EncoderCLSID As GUID
 If m_nBitmap =  0  Then Exit Sub
 GdipExec GdipCloneImage(m_nBitmap, nBitmap)
 Dim Pal( 0  To  3 ) As Long
 'Pal(0) = ColorPalette.Flags
 'Pal(1) = ColorPalette.Count
 'Pal(2) = ColorPalette.Entries(0)
 'Pal(3) = ColorPalette.Entries(1)
 'И т. д. для предопределённых палитр вроде PaletteTypeFixedHalftone27 или
 'PaletteTypeFixedBW поля Entries заполняются вызовом GdipInitializePalette()
 Pal( 1 ) =  2 
 GdipExec GdipInitializePalette(VarPtr(Pal( 0 )), PaletteTypeFixedBW, _
                                 0 , FALSE_BOOL,  0 )
 GdipExec GdipBitmapConvertFormat(nBitmap, PixelFormat1bppIndexed, _
                                   9 , _
                                  PaletteTypeFixedBW, _
                                  VarPtr(Pal( 0 )),  0 )
 If GetEncoderCLSID("image/tiff", EncoderCLSID) >=  0  Then _
    GdipExec GdipSaveImageToFile(nBitmap, StrPtr(FileName), EncoderCLSID, _
                                 ByVal  0 &)
 GdipExec GdipDisposeImage(nBitmap): nBitmap =  0 
End Sub
Здесь есть, возможно, проблемка с третьим параметром GdipBitmapConvertFormat. Как мне кажется, тот результат, что в приложении, должен достигаться при DitherTypeErrorDiffusion (=10), но у меня нет "семёрки", а офисная версия GDI+ принимает для ч/б изображений только DitherTypeSolid и 9 (т. е. DitherTypeDualSpiral8x8).



Что касается перевода в ч/б изображение с дизерингом, а не просто по уровню яркости, только средствами GDI+ 1.0, то здесь надо бы посмотреть теорию, как это делается. Первый шаг, вероятно, будет перевод цветного изображени в оттенки серого, но с этим особо проблем нет, погуглите (немецкий) код с примерно такими словами
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 gpsRes = GdipCreateImageAttributes(pImgAttr)
 'Телевизионное преобразование (Y компонента)
 cm( 0 ,  0 ) =  0 . 299 !: cm( 1 ,  0 ) =  0 . 299 !: cm( 2 ,  0 ) =  0 . 299 !
 cm( 0 ,  1 ) =  0 . 587 !: cm( 1 ,  1 ) =  0 . 587 !: cm( 2 ,  1 ) =  0 . 587 !
 cm( 0 ,  2 ) =  0 . 114 !: cm( 1 ,  2 ) =  0 . 114 !: cm( 2 ,  2 ) =  0 . 114 !
 cm( 3 ,  3 ) =  1 !: cm( 4 ,  4 ) =  1 !
 gpsRes = GdipSetImageAttributesColorMatrix(pImgAttr, ColorAdjustTypeBitmap, _
                                             1 , cm( 0 ,  0 ), ByVal  0 &, _
                                            ColorMatrixFlagsSkipGrays)
 
 gpsRes = GdipDrawImageRectRectI(gpgSrc, gpiSrc,  0 ,  0 , nSrcWidth, nSrcHeight, _
                                  0 ,  0 , nSrcWidth, nSrcHeight, UnitPixel, _
                                 pImgAttr,  0 ,  0 )
, а вот как паттерны в сером искать для получения ч/б, надо читать.
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37211012
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

на всякий случай конвертированное изображение в архиве.
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37211553
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедиктесть вариант с GDI+, но он не универсален (а то и "левый"), так как требует GDI+ версии больше 1.0. Проблема в том, что нет (вроде бы) redistributable-пакета установки версии 1.1, например, для XP или 2000. Да и в Windows 7 надо (опять таки "вроде бы" - не занимался) какие-то усилия прикладывать, манифест писать. Я как-то хотел пощупать новые относительно 1.0 фичи и нашёл в общей папке офиса версию gdiplus.dll, видимо, занимающую промежуточное положение между 1.0 и 1.1.
Значит, смотрите. Я путь в декларациях не указывал, а скомпилировал тупо.
На XP и на Висте (что странно, т.к. якобы там уже это есть) программа меня выкинула с DllEntry.
Но на 7-ке тот же exe-шник сработал.
Но: (полная коллекция пингвинов по ссылке ниже):
Пингвины
from_hor -из "альбома"
from_vert -заранее перевернул "в портрет"
venta (как делает venta, к чему стремимся)
halftone -то что делает SetStretchBltMode hdcDst, HALFTONE
gdi11 -ваш метод
БенедиктЗдесь есть, возможно, проблемка с третьим параметром GdipBitmapConvertFormat. Как мне кажется, тот результат, что в приложении, должен достигаться при DitherTypeErrorDiffusion (=10), но у меня нет "семёрки", а офисная версия GDI+ принимает для ч/б изображений только DitherTypeSolid и 9 (т. е. DitherTypeDualSpiral8x8).
Не-а, только 9-ка работает, еще 1-ца делает ч/б мазню.
Но ...я думаю это вообще не тот путь (не говоря о сложности внедрения v1.1 -это исключено)
Но 9-ка делает совсем не то что делает Venta. Dithering -это возможно вообще не то.

А вот SetStretchBltMode hdcDst, HALFTONE
как раз делает "то", но больно уж тщательно.
Не говоря о том, что вента писалась давно очень, и точно gdiplus1.1 не использует.
Но также не думаю что они интегралы/производные по пикселям вручную строят.

Дмитрий772) ощущение что уж очень винды хорошую точность сделать пытаются
В венте напр. есть параметры:
Код: plaintext
1.
2.
3.
4.
5.
6.
Автовыбор
Супер-ячейка
2х2
4х4
Сглаживание 6х6
Сглаживание 8х8
10х10

Бенедикта вот как паттерны в сером искать для получения ч/б, надо читать.
2х2;4х4 -это вы про паттерны? об одном и том же
ссылка кстати ваша не работает

Ну и...
Дмитрий771) ощущение что темновато
надо б осветлить (Halftone Brightness)
Ну т.е. "квадратики побольше размером" и чуть "просветлить", и будет файл в 3 раза меньше (как у Венты) , хорош визуально, и то что надо.
Основной вопрос: КАК?

Просто этот дитеринг, это выжигание точками на дощечке -смотрится похабно. И у венты, и у halftone сетка прямоугольная, если обратили внимание.
Плюс я еще не пойму, почему когда я делаю "с поворотом на 90" (через свой код), качество HALFTONE сильно хуже.

Было бы неплохо, если бы вы критиканули (м.б. помогли) с кодом "поворота на 90". (крайний проект в этой теме выше).
Сделать то я сделал через WordTransform, ну из за путаницы с координатами делаю в 2 этапа вместо одного (очевидно излишки).
Т.е. не могу высчитать как спроецировать перевернутую на 90 градусов картинку на первый hdcdst НО с масштабированием .
Возможно из за этого дуализма и качество ч/б в итоге страдает, ибо полутона применяются дважды.
Или может хотя бы в первом действии (поворот на 90) хотя бы палитру не поганить? Только как тогда ее записать для bmidst (вместо ч/б)?
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37212021
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

перманентный цейтнот, опять тезисно:
1) Нет цветных пингвинов.
2) Размер несжатой картинки 1728*2340*1/8=505440, значит размер TIFF-а более 1 Мб прихоть кодировки. Попробуйте LZW.
3) Про поворот помню, не доходят руки. Если не волнует вопрос совместимости с не-NT, gопробуйте вместо SetWorldTransform - BitBlt использовать одиночный PlgBlt, там координаты явно задаются.
4) Не работающая (в IE) ссылка - тот же TIFF, что и в следующем сообщении.
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37212489
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт1) Нет цветных пингвинов..
Цветные пингвины
Бенедикт2) Размер несжатой картинки 1728*2340*1/8=505440, значит размер TIFF-а более 1 Мб прихоть кодировки. Попробуйте LZW..
Странная прихоть...LZW для ч/б факсов дурной тон (о цветных речь не идет)
Хотя я обратил внимание что вента клепает пингвинов в Group3 (1d)...попробую позже
Там правда какие-то глюки с виндовским Group3-encoder, надо читать собственные топики годичной давности.
У виндов еще проблема с битом кот. устанавливает "Reversed bit order", якобы лепят 0 где по определению м.б. только 1 или 2
Ничего на тему этого подлого бита не думаете (его можно также поменять тупым доступом к файлу или через libtiff например)?
Бенедикт3) Про поворот помню, не доходят руки. Если не волнует вопрос совместимости с не-NT, gопробуйте вместо SetWorldTransform - BitBlt использовать одиночный PlgBlt, там координаты явно задаются..
Неохота на самом деле еще чего-то лепить, если SetWorldTransform работает.

Проблем(к)а в том что в случае поворота я
1) дважды делаю преобразование к ч/б
2) дважды устанавливаю полутона
Т.е. как бы сделать так, чтоб первый этап (поворот) осуществлялся без деградации цветов и т.п.?

Дальше, м.б. вообще плюнуть и сделать "левым методом" через GHostScript или libtiff (но самогордость, т.сказать не позволяет).
GHostScript прекрасно конвертит pdf в Group3/4 причем с выравниванием размера и цвета с корректными полутонами.
Но я напр. не знаю как сконвертить GS:tiff->tiff не говоря о всем остальном обезьяннике bmp/jpg форматов.

Собственно на gs я вроде как подписался с т.зр. pdf, но оказывается он размеры не всегда правильно делает:
http://asteriskforum.ru/viewtopic.php?t=1761&start=500
Собсвенно все это и подхлестнуло опять влезть в graphic-програмирование, хочется все же написать свой универсальный конвертер.
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37212837
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Бенедикт2) Размер несжатой картинки 1728*2340*1/8=505440, значит размер TIFF-а более 1 Мб прихоть кодировки. Попробуйте LZW..
Странная прихоть...LZW для ч/б факсов дурной тон (о цветных речь не идет)
Хотя я обратил внимание что вента клепает пингвинов в Group3 (1d)...попробую позже
Значит так...
Group3 и Group4 по прожорливости (в смысле размеров файла) примерно одинаковы -могут добить до 1МБ и выше.
Но дело не в этом.
Новый тест - скачать

My_LZW.tif -то что я делаю в LZW 110кБ -но идет по факсу 10 минут на 14400 и на выходе после факса все равно g3/1МБ
Venta_g3 -то что делает вента Group3 267кБ - но идет по факсу меньше 3 минут на 14400 и на выходе такой же размер 268кб g3

Т.е. факсу плевать на исх. компрессию -так понимаю чем больше черного (или переходов между цветами, не знаю) - тем дело хуже.
Задача: сделать 1) светлее 2) м.б. грубее а на 300кб g3/g4 я понятно согласен вместо 100кб LZW

На всяк. случай ниже последняя версия проекта, где в ComboBox можно выбрать компрессию tiff (для двух основных тестовых кнопок)
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37213239
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Проблем(к)а в том что в случае поворота я
1) дважды делаю преобразование к ч/б
2) дважды устанавливаю полутона
Т.е. как бы сделать так, чтоб первый этап (поворот) осуществлялся без деградации цветов и т.п.?
Это решается если в первом преобразовании
Код: plaintext
1.
2.
    With bmiDst.bmiHeader
...
        .biBitCount =  24 
ну и убрать про HALFTONE

Хотя, опять же возможные излишки.
Как бы выяснить, что у нас во Frame(i) черно-белое ли изначально изображение? Чтобы не издеваться например над черным текстом, или например над результатом полученным из GS (pdf->tiff). Дело в том что HALFTONE будучи применен там где это не надо, пусть незначительно, но увеличит размер файла, да и подпортить может надо думать.

А время прохождения факса (что мне важно) зависит не от количества черного и белого, наверно не от яркости, а от чередования пикселей , т.е. напр. 3 белых-2черных-4 белых это хуже чем 1белый-1черный-2белых.
Скорее всего pattern size и от этого косвенно зависит размер файла (1МБ вместо 300кб).
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37213269
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собака зарыта где-то здесь:

Halftoning
The driver sends GDI the device-related specifications that GDI needs to do halftoning through the GDIINFO structure returned by the DrvEnablePDEV function. The driver specifies the pattern size with the ulHTPatternSize member of GDIINFO, which defines the preferred output format for halftoning. For specific devices, halftoning relates to the halftone pattern sizes. GDI provides numerous predefined pattern sizes from 2 x 2 through 16 x 16.

ulHTPatternSize
Specifies the size of the halftone pattern. The values ending with AxB_M are variations of the AxB patterns. In other words, SIZE_AxB and SIZE_AxB_M differ by which pixels are lit in an A x B pattern. This member can be one of the following values:

HT_PATSIZE_2x2
HT_PATSIZE_2x2_M
HT_PATSIZE_4x4
HT_PATSIZE_4x4_M
HT_PATSIZE_6x6
HT_PATSIZE_6x6_M
HT_PATSIZE_8x8
HT_PATSIZE_8x8_M
HT_PATSIZE_10x10
HT_PATSIZE_10x10_M
HT_PATSIZE_12x12
HT_PATSIZE_12x12_M
HT_PATSIZE_14x14
HT_PATSIZE_14x14_M
HT_PATSIZE_16x16
HT_PATSIZE_16x16_M
HT_PATSIZE_SUPERCELL
HT_PATSIZE_SUPERCELL_M
HT_PATSIZE_USER
HT_PATSIZE_MAX_INDEX
HT_PATSIZE_DEFAULT

Только как к этому всему подцепиться. Мне нужен именно конвертер, а не принтер, а тут речь о каких-то девайсах идет.

GDI handles color adjustment requests from the application and passes the information down to driver functions through the graphics DDI. If the application selects halftoning and the surface is a standard format DIB, GDI processes the bitmap using its halftoning capabilities, after which, the bitmap is sent to the device.

У нас как раз DIB...не знаю чего делать
...
Рейтинг: 0 / 0
Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
    #37225803
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт,

а на GDI свет клином сошелся?

Идея такая. Есть Ghostcript.
Я его все равно прикрутил уже как DLL, потому что нужно уметь работать и с PDF тоже.
При конвертации цветной PDF -> ч/б TIFF он делает прекрасный HALFTONE.
Беда в том, что этот гад на вход принимает только PDF и PS,
хотя очевидно знает все обычные форматы типа BMP, JPG, PNG, ибо прекрасно умеет их всех делать.

Нет ли там какой API, чтоб из цветного bitmap делала "волшебный черно-белый" приемлемый для указанных целей?
М.б. сталкивались, если с графикой так много работаете?

Максимум, чего я придумал логически.

1) {BMP,GIF, JPG} -> GDI -> Цветной TIFF
2) Цветной TIFF -> libtiff -> "Цветной" PDF
3) "Цветной" PDF -> GS с его dithering -> b/w tiff

Понятно, что это будет работать, даже не проверял. Но это ж идиотизм чистой воды, переливание из пустого в порожнее. И куча времени (ощутимого если несколько страниц).
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Конвертация картинки Цветная >> 2 цвета(ч/б) с сохранением тонов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]