Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

можно ли из-под VBA(VB) конвертировать jpg в bmp?

248
22 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Вопрос. Картинки приходят в jpg-формате. А я через Irfan перевожу их в bmp-шки (т.е. пересохраняю в новом формате). Можно ли Basic заставить проделать такую процедуру. Т.е. задача: пересохранить все существующие в данной директории jpg-файлы (если таковые здесь имеются среди файлов других расширений) в формате bmp.
275
23 сентября 2007 года
pashulka
985 / / 19.09.2004
Вы можете воспользоваться элементом управления Image *, который позволяет загрузить файл .jpg - LoadPicture и сохранить его как .bmp - SavePicture (* см.свойство Picture) Пример же перебора файлов с нужным расширением наличествует в одной из Ваших прошлых тем, так что с этим проблем возникнуть не должно.
248
25 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: pashulka
Вы можете воспользоваться элементом управления Image *, который позволяет загрузить файл .jpg - LoadPicture и сохранить его как .bmp - SavePicture (* см.свойство Picture)



А-га, понятно - сначала Load, потом Save . Посмотрим, что получится :-)

275
25 сентября 2007 года
pashulka
985 / / 19.09.2004
Получите .bmp, конечно если не забудете указать расширение при сохранении, впрочем, если Вы не доверяете мне, то вот цитата из справки VB5.0

Цитата:
Если графическое изображение, имеющее формат растра, значка, метафайла или расширенного метафайла, было присвоено значению свойства Picture объекта во время разработки или во время выполнения, то при записи в файл его формат не изменится. Если же изображение имело формат GIF или JPEG, то оно будет сохранено в виде растрового файла.

Copyright(c) Microsoft Corporation

248
26 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: pashulka
Получите .bmp, конечно если не забудете указать расширение при сохранении, впрочем, если Вы не доверяете мне, то вот цитата из справки VB5.0



Рискую выглядеть кретином, но опять спрошу. Написал вот так:

 
Код:
Private Sub Image1_Click()
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman.jpg")
Image1.Picture = SavePicture("c:\Pics\Kach\Coleman.bmp")
End Sub

А оно пишет Ошибка компиляции - Type mismatch и высвечивается именно строчка с бмп-шкой.
У меня там нет помощи по F1, поэтому не могу оперативно сходу увидеть помощь по опциям и пр. наводящую на нужную мысль, информацию. :o

Заметил, что если второе название чуть изменить, то сообщение об ошибке не выскакивает, но и файла в это директории не появляется.
275
26 сентября 2007 года
pashulka
985 / / 19.09.2004
 
Код:
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman.jpg")
SavePicture Image1.Picture, "c:\Pics\Kach\Coleman.bmp"
248
27 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: pashulka
 
Код:
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman.jpg")
SavePicture Image1.Picture, "c:\Pics\Kach\Coleman.bmp"


Я написал следующее:

 
Код:
Private Sub Image1_Click()
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman_avatar.jpg")
SavePicture Image1.Picture, "c:\Pics\Kach\Coleman_avatar.bmp"
End Sub

В поле Image картинка появляется, но на диске не появляется ничего.

Более того. Отыскал такой пример:
Код:
Private Sub Form_Click()
' Поместите на форму PictureBox и загрузите туда любую картинку
AutoRedraw = True ' Включаем перерисовку окна
Picture1.AutoRedraw = True
Form1.ScaleMode = vbPixels ' Ставим вид масштаба в пиксели
Picture1.ScaleMode = vbPixels
Form1.PaintPicture Picture1, 0, 0, 100, 100, 0, 0, 100, 100, vbSrcCopy
Form1.Refresh
MsgBox "Нажмите OK для сохранения"
SavePicture Image, "D:\TEST.BMP" ' Сохраняем картинку
End Sub

Результат тот же. У меня есть подозрение, что это может быть такой мой дистрибутив VB, который не дает ничего нигде сохранять. Я уже говорил в другом топике, что из него не могу сделать exe-файл, хоть и рисуется прогресс-бар, но файла не получается. Т.е. это может быть реакция программы на "крякнутость".
А заодно такой вопрос. Можно тестировать коды без того, чтобы надо было бы на чем-то щелкать? Т.е. все образцы начинаются со слов Sub Click() или Load().
А вот бы просто Sub Something() - End Sub.
275
27 сентября 2007 года
pashulka
985 / / 19.09.2004
Есть предложение: протестировать конвертацию в офисе, например в Excel или Word. И если Вам это интересно, то пример можно скачать здесь (в Word нужно только заменить Workbook на Document)

P.S. Что касается тестирования и нежелания использовать события используемых элементов управления, то будем ждать обладателя VB ...
248
27 сентября 2007 года
Dmitry2064
590 / / 06.12.2006
Цитата: pashulka
Есть предложение: протестировать конвертацию в офисе, например в Excel или Word. И если Вам это интересно, то пример можно скачать здесь (в Word нужно только заменить Workbook на Document)

P.S. Что касается тестирования и нежелания использовать события используемых элементов управления, то будем ждать обладателя VB ...



Да не то чтобы нежелание использовать формы, но они меня пугают, их же надо еще и сделать, прежде чем что-то протестировать. А я и так плохо соображаю. Т.е. на первый взгляд, как бы излишество :o .
(кстати с большим трудом добрался до рабочего кода в предложенном примере - это к слову о том, что соображаю пока слабова-то).

А Ваш пример сработал отлично. Спасибо большое. Теперь буду "встраивать" в свой "нафаршированный" :) макросами Ворд.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог