powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VisImage.dll
8 сообщений из 8, страница 1 из 1
VisImage.dll
    #39603061
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, для печати картинок в проекте используется DLLка VisImage от 1999 года. Довольно мощная и удобная вещь.
Возникла проблема с печатью крупных картинок большого размера, сыплются ошибки.
Искал свежие версии, гугл не помог, выдает лишь кучу ссылок на скачку вирусов замест полноценной ддл.
Поиск по сайты с архивами dll также результатов не принес.
Нет ли у кого более свежей версии дллки или может ктото поборол ошибку?
ошибка
Вызывается функция ZoomingImage из UNIT`a axPicturesUnit
Код: pascal
1.
ZoomingImage(aFileName,1750,2400,1);


в ней вызывается функция
Код: pascal
1.
vimg_bitmap_info(ImgHandle, @xsize, @ysize, @bpp);


из UNIT`a vimgapi
На этом моменте и возникает AV...
...
Рейтинг: 0 / 0
VisImage.dll
    #39603129
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕР,

Очень давно печатаю картинки таким кодом и как-то никогда проблем не было:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure PrintDIB(ACanvas: TCanvas; const DestRect: TRect; const DIB: TDIB);
var
 Pt: TPoint;
begin
 GetBrushOrgEx(ACanvas.Handle, Pt);
 SetStretchBltMode(ACanvas.Handle, COLORONCOLOR);
 SetBrushOrgEx(ACanvas.Handle, Pt.x, Pt.y, @Pt);
 StretchDIBits(ACanvas.Handle, DestRect.Left,
  DestRect.Top, // Destination Origin
  DestRect.Right - DestRect.Left, // Destination Width
  DestRect.Bottom - DestRect.Top, // Destination Height
  0, 0, // Source Origin
  DIB.Width, DIB.Height, // Source Width & Height
  DIB.PBits, DIB.BitmapInfo^, DIB_RGB_COLORS, SRCCOPY);
end;



Может ну её, эту старую и непонятную либу? Может проще и быстрее на Делфи нормально сделать?
...
Рейтинг: 0 / 0
VisImage.dll
    #39603145
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, там функционал, который позволяет выбрать кучу картинок и печатать их в отдельном потоке на листах (с обеих сторон) масштабируя на весь лист + куча разных мелких примочек.
Разобрался, что ошибка возникает только при обработке изображений, сохраненных через Corel Draw.
Возможно, всему виной векторная графика (хотя странно)??? Но пересохранение файла через Paint(не изменяя при этом ничего, кроме названия) лечит ошибку...
...
Рейтинг: 0 / 0
VisImage.dll
    #39603158
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕРВозможно, всему виной векторная графика...Невозможно, судя по заголовкам там растр.
Скорее всего, древний баг дельфовой читалки битмапов. Выложи образец файла на котором затыкается.
...
Рейтинг: 0 / 0
VisImage.dll
    #39603167
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис, яндекс диск
...
Рейтинг: 0 / 0
VisImage.dll
    #39603186
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕР,
Если там jpeg, то это другой баг.
Честно говоря, не вижу смысла
а) в сохранении векторных изображений как растр (тем более jpeg)
б) в уменьшающем ресамплинге перед печатью. Винда с драйвером принтера сами прекрасно с этим справятся, просто задай перед отрисовкой SetStretchBltMode(Printer.Canvas.Handle, HALFTONE);
...
Рейтинг: 0 / 0
VisImage.dll
    #39603201
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис, изображение может быть любым: скан, фотка с мобилы или фотика, изображение, скаченное из интернета или нарисованное в редакторе... Как пользователю будет угодно
...
Рейтинг: 0 / 0
VisImage.dll
    #39603208
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕР,
Да ради бога. Но вектор оставляй вектором - и быстрее и искажений меньше.
И проверяй размер растра перед ресамплированием, если нужно меньше чем 2x увеличение - печатай напрямую, эффект будет тот же.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VisImage.dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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