procedure TmyThread.RescalePhoto(const FileName: string);
const
DefaultHeight = 300;
var
Bitmap: TBitmap;
xScale: Double;
newWidth, newHeight: integer;
begin
Bitmap := TBitmap.Create;
try
try
Bitmap.LoadFromFile(FileName);
// установим высоту в 300 пикселей.
if Bitmap.Height <> DefaultHeight then
begin
xScale := Bitmap.Height / DefaultHeight;
newHeight := DefaultHeight;
newWidth := Round(Bitmap.Width / xScale);
Bitmap.Resize(newWidth, newHeight);
Bitmap.SaveToFile(FileName);
end;
except
DeleteFile(FileName);
raise;
end;
finally
Bitmap.Free;
end;
end;
В Windows все отлично, а вот на симуляторе есть проблемы.
Проблема №1: вместо некоторых отмасштабированных jpg-файлов - белый прямоугольник корректного размера.
Проблема №2: размер итогового файла (если не наблюдается проблемы №1) значительно больше, чем при запуске в Windows, хотя размеры правильные. (к примеру 96кб vs 19кб)
Где моя ошибка? Пример файла, масштабируемого в белый прямоугольник прилагаю.
Вопрос
kami
Доброго времени суток, уважаемые!
Есть код:
В Windows все отлично, а вот на симуляторе есть проблемы.
Проблема №1: вместо некоторых отмасштабированных jpg-файлов - белый прямоугольник корректного размера.
Проблема №2: размер итогового файла (если не наблюдается проблемы №1) значительно больше, чем при запуске в Windows, хотя размеры правильные. (к примеру 96кб vs 19кб)
Где моя ошибка? Пример файла, масштабируемого в белый прямоугольник прилагаю.
P.S. iOS 7.1 (iPad), Win8, Delphi XE7Upd1.
PHOTO_original.zip
Ссылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.