Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Форматы файлов и данных > tiff/bmp to jpeg


Автор: Tupik 9.10.2002, 19:07
Народ! Третии день мучаюсь - без толку. Всё, что пытаюсь сделать - ActiveX контроль для Wеb странички, которыи запускал бы сканнер и отсканированныи имидж аплоадил на сервер. Использую кодаковскиe imgscan.ocx и imgedit.ocx. Беда в том, что imgscan выдаёт только TIFF (весом не меньше 2М), а imgedit под W98 не способен перекинуть эго в jpg (только в bmp). Кто нибудь в курсе, как ето провернуть? Да так, чтоб юзер дополнительных кнопок не жал?

Автор: Vit 9.10.2002, 23:18
С tiff прийдётся попотеть, а Jpeg - очень просто можно перевести в Дельфи - там класс есть для поддержки jpeg. Если надо то могу или код написать или готовую программу/DLL - там кода всего-то строк 5... С tiff можно пойти тремя путями -
1) Поискать компоненты для работы с ним
2) Поискать программу которая конвертит в пакетном режиме(что-нибудь типа Alchemy)
3) Самому разбираться с форматом

Я бы в таком порядке и пытался решить

Автор: Tupik 10.10.2002, 00:55
Спасибо большоe!
Вобшчем-то, тот же самыж imgedit.ocx делаeт мне из tiff-а bmp... Но он тоже выходит не маленькии.  ??? А вот с Дельфи... не работал я никогда.
Eсть хорошии класс в ATL VC7.0... но скомпилированныи в неи dll не хочет регистрироваться на машинах, где не стоит .NЕТ.
Да, а что там по поводу dll-а, которыи у тебя готов?  :)

Автор: Vit 10.10.2002, 02:03
Dll у меня готового нет, но написать займёт минут 5. Дай мне формат функции который ты хочешь иметь и я сделаю.

Автор: Tupik 10.10.2002, 02:19
Хотeлось бы всего лишь задать иcxодныи фаил (bmp), конечныи (jpg), ну и вызвать функцию, которая из первого второи сделаeт...
А всe остальноe не так уж важно.  :)

Автор: Vit 10.10.2002, 02:32
Т.е. что-то типа:

Void Bmp2jpg(lpstr FileName1, lpstr FileName2, int quality)?

Автор: Vit 10.10.2002, 02:57
Вот, сваял DLL:

Код

library JpgSupport;

uses graphics,  jpeg;

Procedure Bmp2Jpg(BMPFile, JpgFile:PChar; Quality:integer); stdcall;
var JPEGImage:TJPEGImage;
    BitMap:TBitMap;
begin
 JPEGImage:=TJPEGImage.create;
 BitMap:=TBitMap.create;
 BitMap.LoadFromFile(BMPFile);
 JPEGImage.Assign(BitMap);
 JPEGImage.CompressionQuality:=Quality;
 JPEGImage.SaveToFile(JpgFile);
 BitMap.free;
 JPEGImage.free;
end;

Exports Bmp2Jpg;

end.


Откомпиллированную можно взять с http://chicago.lastplanet.com/3/JpgSupport.dll


Вот мой код на Дельфи проверяющий работоспособность:

Код

Procedure Bmp2Jpg(BMPFile, JpgFile:PChar; Quality:integer); stdcall; External('c:\dev\JpgSupport.dll');

procedure TForm1.Button1Click(Sender: TObject);
begin
 Bmp2Jpg('C:\WINNT\Santa Fe Stucco.bmp', 'c:\dev\1.jpg',100);
end;



Автор: Tupik 10.10.2002, 20:26
Уффф.... Работает!!!! Спасибище тебе!!!  :D

Автор: Vit 10.10.2002, 23:32
Не за что, там же всего 5 строк...

Автор: Guest 23.6.2004, 17:08
Люди нужен старенький IMGEDIT.OXC !!! sad.gif Помогите пожалуйста!!! Кто знает дайте ссылку!!!
чень нужно!!! notify.gif

Автор: Fluke 23.6.2004, 17:09
Люди нужен старенький IMGEDIT.OXC !!! sad.gif Помогите пожалуйста!!! Кто знает дайте ссылку!!!
чень нужно!!!

Автор: A.S. 1.7.2004, 15:32
to Vit:
А для тифа такую могеш сотворить
чтонить типа tiff2jpeg(input,output)
???
дико надо, а то уже всю сеть исползал в поисках..

Автор: t0rik 4.7.2004, 16:07
А можешь предоставить код обратного конвертирования jpg в bmp?

Автор: Peter 16.8.2004, 13:51
Делюсь опытом.
Надо было переконвертировать (точнее, заткнуть в программу такую функцию) старый WMF (от Win3.11) в BMP. Я взял http://www.irfanview.com, посмотрел, как она работает с командной строки - и вставил строчку WinExec. Программа поддерживает КУЧУ форматов. Ежели ей надо пользоваться с коммерческими целями, то регистрация - $10.

Автор: Peter 20.8.2004, 12:16
Кстати, вместо IrfanView можно воспользоваться ImageMagick. Совершенно бесплатная.
http://www.imagemagick.org

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)