Private Sub Image1_Click()
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman.jpg")
Image1.Picture = SavePicture("c:\Pics\Kach\Coleman.bmp")
End Sub
можно ли из-под VBA(VB) конвертировать jpg в bmp?
Вопрос. Картинки приходят в jpg-формате. А я через Irfan перевожу их в bmp-шки (т.е. пересохраняю в новом формате). Можно ли Basic заставить проделать такую процедуру. Т.е. задача: пересохранить все существующие в данной директории jpg-файлы (если таковые здесь имеются среди файлов других расширений) в формате bmp.
Вы можете воспользоваться элементом управления Image *, который позволяет загрузить файл .jpg - LoadPicture и сохранить его как .bmp - SavePicture (* см.свойство Picture) Пример же перебора файлов с нужным расширением наличествует в одной из Ваших прошлых тем, так что с этим проблем возникнуть не должно.
Цитата: pashulka
Вы можете воспользоваться элементом управления Image *, который позволяет загрузить файл .jpg - LoadPicture и сохранить его как .bmp - SavePicture (* см.свойство Picture)
А-га, понятно - сначала Load, потом Save . Посмотрим, что получится :-)
Цитата:
Если графическое изображение, имеющее формат растра, значка, метафайла или расширенного метафайла, было присвоено значению свойства Picture объекта во время разработки или во время выполнения, то при записи в файл его формат не изменится. Если же изображение имело формат GIF или JPEG, то оно будет сохранено в виде растрового файла.
Copyright(c) Microsoft Corporation
Copyright(c) Microsoft Corporation
Цитата: pashulka
Получите .bmp, конечно если не забудете указать расширение при сохранении, впрочем, если Вы не доверяете мне, то вот цитата из справки VB5.0
Рискую выглядеть кретином, но опять спрошу. Написал вот так:
Код:
А оно пишет Ошибка компиляции - Type mismatch и высвечивается именно строчка с бмп-шкой.
У меня там нет помощи по F1, поэтому не могу оперативно сходу увидеть помощь по опциям и пр. наводящую на нужную мысль, информацию. :o
Заметил, что если второе название чуть изменить, то сообщение об ошибке не выскакивает, но и файла в это директории не появляется.
Код:
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman.jpg")
SavePicture Image1.Picture, "c:\Pics\Kach\Coleman.bmp"
SavePicture Image1.Picture, "c:\Pics\Kach\Coleman.bmp"
Цитата: pashulka
Код:
Image1.Picture = LoadPicture("c:\Pics\Kach\Coleman.jpg")
SavePicture Image1.Picture, "c:\Pics\Kach\Coleman.bmp"
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
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
' Поместите на форму 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.
здесь (в Word нужно только заменить Workbook на Document)
P.S. Что касается тестирования и нежелания использовать события используемых элементов управления, то будем ждать обладателя VB ...
Есть предложение: протестировать конвертацию в офисе, например в Excel или Word. И если Вам это интересно, то пример можно скачать
P.S. Что касается тестирования и нежелания использовать события используемых элементов управления, то будем ждать обладателя VB ...
Цитата: pashulka
Есть предложение: протестировать конвертацию в офисе, например в Excel или Word. И если Вам это интересно, то пример можно скачать здесь (в Word нужно только заменить Workbook на Document)
P.S. Что касается тестирования и нежелания использовать события используемых элементов управления, то будем ждать обладателя VB ...
P.S. Что касается тестирования и нежелания использовать события используемых элементов управления, то будем ждать обладателя VB ...
Да не то чтобы нежелание использовать формы, но они меня пугают, их же надо еще и сделать, прежде чем что-то протестировать. А я и так плохо соображаю. Т.е. на первый взгляд, как бы излишество :o .
(кстати с большим трудом добрался до рабочего кода в предложенном примере - это к слову о том, что соображаю пока слабова-то).
А Ваш пример сработал отлично. Спасибо большое. Теперь буду "встраивать" в свой "нафаршированный" :) макросами Ворд.