Что лучший способ состоит в том, чтобы изменить размеры объекта BitmapData?

Если вы работаете в стабильной версии Docker-Machine v0.2, вы не можете настроить опцию Docker легким способом. Но в следующей версии v0.3 эта проблема была решена с помощью параметров создания.

На данный момент эта функция на RC1, тогда вы можете использовать версию v0.3.0-RC-1 или дождаться доставки следующей стабильной версии v0.3.0 (ориентировочно 16 июня).

Затем используйте параметр --engine-insecure-registry, чтобы установить --allow-insecure-ssl для демона докера, например:

docker-machine create --driver virtualbox --engine-insecure-registry myregistry:5000 dev

После этого вы можете выполнить:

docker run myregistry:5000/busybox:latest echo 'hello world'

Дополнительно вы можете прочитать об этом на Project Doc .

36
задан Iain 8 June 2009 в 11:42
поделиться

4 ответа

Это работает:

var scale:Number = 1.0/6.0;
var matrix:Matrix = new Matrix();
matrix.scale(scale, scale);

var smallBMD:BitmapData = new BitmapData(bigBMD.width * scale, bigBMD.height * scale, true, 0x000000);
smallBMD.draw(bigBMD, matrix, null, null, null, true);

var bitmap:Bitmap = new Bitmap(smallBMD, PixelSnapping.NEVER, true);
69
ответ дан 27 November 2019 в 05:22
поделиться
public function drawScaled(obj:IBitmapDrawable, thumbWidth:Number, thumbHeight:Number):Bitmap {
    var m:Matrix = new Matrix();
    m.scale(WIDTH / obj.width, HEIGHT / obj.height);
    var bmp:BitmapData = new BitmapData(thumbWidth, thumbHeight, false);
    bmp.draw(obj, m);
    return new Bitmap(bmp);
}

IBitmapDrawable - это интерфейс для DisplayObject и BitmapData.

из: http://www.nightdrops.com/2009/02/quick-reference-drawing-a-scaled-object-in-actionscript/

19
ответ дан 27 November 2019 в 05:22
поделиться

Без написания кода самостоятельно. Я бы подошел к этому, создав новый объект BitmapData желаемого размера, а затем используя метод bitmap.draw, чтобы скопировать большой объект в маленький. Метод bitmap.draw также принимает аргумент матрицы, который можно использовать для масштабирования при копировании.

1
ответ дан 27 November 2019 в 05:22
поделиться

Проблема с использованием масштабирования матрицы заключается в том, что оно не выполняет никакого сглаживания или сглаживания - это, вероятно, нормально, если вы уверены, что когда-либо будете выполнять только масштабирование, но более общий метод будет используйте класс Image для изменения размера. В AS3 это никогда не будет добавлено в список отображения, поэтому будет использоваться просто вне экрана. Примерно так (с вашими растровыми данными как «sourceBitmapData»):

var image:Image = new Image();
image.load(new Bitmap(sourceBitmapData, PixelSnapping.NEVER, true));

var scale:uint = 100/600; // this is from your example of 600x600 => 100x100
var scaledWidth:uint = sourceBitmapData.width * scale;
var scaledHeight:uint = sourceBitmapData.height * scale;

image.content.width = scaledWidth;
image.content.height = scaledHeight;

var scaledBitmapData:BitmapData = new BitmapData(scaledWidth, scaledHeight);
scaledBitmapData.draw(image.content); 

image = null;

Затем вы можете использовать «scaledBitmapData» вместо «sourceBitmapData», чтобы делать что угодно с.

0
ответ дан 27 November 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: