Просмотр полной версии : Ресайзинг картинок
Здравствуйте!
Требуется ваша помощь.
Есть следующая задача: создать клип, в который бы загружались картинки, а потом по клику на маленькую картинку (thumbnail) появлялась бы точно такая же, но большая картинка...
Понятно, что самый простой вариант сделать две картинки:маленькую и большую. Но я думаю, этот вариант не правильный и не эфективный. Вариант с изменением width, height тоже не катит, так как сильно портится кач-во получающейся картинки.
Подозреваю, что BitmapData может все, но как конкретно, не знаю... :rolleyes:
Помогите, пожалуйста!
P.S.
Может есть уже готовый класс, делающий всю рутину? :)
Заранее спасибо!
Нужно делать 2 картинки.
печально...
пока так и делаю... но всегда хочется максимум автоматизации :umnik2:
Для этого можно посмотреть в сторону других языков и написать на одном из них автоматизационную тулзу.
Мне один раз понадобилось разрезать несколко картинок на квалратики. Т.к. я знаю Java мне особого труда не составило это сделать.
Если кого заинтересовала подобная вещь, то могу поделиться.
у битмапа есть smoothing в конструкторе.
Для этого можно посмотреть в сторону других языков и написать на одном из них автоматизационную тулзу.
Мне один раз понадобилось разрезать несколко картинок на квалратики. Т.к. я знаю Java мне особого труда не составило это сделать.
Если кого заинтересовала подобная вещь, то могу поделиться.
спасибо, но, насколько мне известно,тогда придется ставить Java Runtime, это уже не вариант, так как потенциальному пользователю придется долго объяснять, что и зачем ему надо поставить для того чтобы запустить flash файл!
с таким успехом можно на C# что-нибудь в этом стиле написать и пихнуть в дистрибутив .Net Framework :quiet:
smooth - это уже интереснее :)
спасибо, но, насколько мне известно,тогда придется ставить Java Runtime, это уже не вариант, так как потенциальному пользователю придется долго объяснять, что и зачем ему надо поставить для того чтобы запустить flash файл!
с таким успехом можно на C# что-нибудь в этом стиле написать и пихнуть в дистрибутив .Net Framework :quiet:
smooth - это уже интереснее :)
Всё верно, просто я предполагал, что у вас картинки лежат на сервере, а не на клиенте.
Всё верно, просто я предполагал, что у вас картинки лежат на сервере, а не на клиенте.
да, у меня сервера вообще нет... по плану все должно работать на любом компьютере, даже на котором нет инета (поэтому основной файл -это Windows Projector)...
по теме ресайзинга:
myBitmapData = new BitmapData(container.width, container.height);
var myMatrix:Matrix = new Matrix();
myMatrix.a = .5;
myMatrix.d = .4;
myBitmapData.draw(container, myMatrix, null, null,null, true);
myBitmap = new Bitmap(myBitmapData);
bitmapContainer.addChild(myBitmap);
this.addChild(bitmapContainer);
загрузил два одинаковых изображения, одно через Loader с scaleX и scaleY, другое - это битмап, в который методом draw откопировано первой изображение, наложена трансформация, и включен smoothing...
Разницы между smoothing=true || smoothing=false не вижу...
Может, чего не так делаю?:umnik2:
Заранее спасибо за любую помощь!
Так надо использовать smooth не при отрисовке, а постоянный у Bitmap.
Так надо использовать smooth не при отрисовке, а постоянный у Bitmap.
исправил код, спасибо...
удалось добиться чего-то приемлемего следующим кодом:
//container.scaleX = .5;
//container.scaleY = .5;
//container.width = 192;
//container.height = 333;
myBitmapData = new BitmapData(container.width, container.height);
trace(container.width +" "+ container.height);
var myMatrix:Matrix = new Matrix();
//myMatrix.a = .5;
//myMatrix.d = .5;
myBitmapData.draw(container, myMatrix, null, null,null, true);
myBitmap = new Bitmap(myBitmapData, "auto", true);
myBitmap.scaleX = .5;
myBitmap.scaleY = .5;
bitmapContainer.addChild(myBitmap);
this.addChild(bitmapContainer);
по крайней мере стала вида разница;
все равно результат не очень...
слева - отресайзенный Flash Player вариант, справа - "ручной" фотошоповский, антиалиасинга не хватает
А зачем делать draw, уменьшая картинку в два раза, потом ещё раз уменьшать в два раза? Зачем менять размеры Bitmap, когда можно отрисовать картинку в 4 раза меньше?
А зачем делать draw, уменьшая картинку в два раза, потом ещё раз уменьшать в два раза? Зачем менять размеры Bitmap, когда можно отрисовать картинку в 4 раза меньше?
я отключил ресайзинг для draw в последнем примере.
теперь в метод draw я подаю оригинальную картинку
Лучше бы наоборот. В конкретно данном случае лучше сделать наоборот.
Но вообще говоря smooth != image resize в Photoshop.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.