Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS7 XE5 Appstore geht nicht ?! (https://www.delphipraxis.net/176792-ios7-xe5-appstore-geht-nicht.html)

CHackbart 6. Okt 2013 09:20

AW: iOS7 XE5 Appstore geht nicht ?!
 
Also sofern man die 3 zusätzlichen Bildformate (144x144, 120x120, 152x152) in die plist einträgt funktionieren die für IOS7 entwickelten Apps auch mit dem Apploader. Der zickt jedoch aus unerfindlichen Grünen mitunter - so hatte ich gestern andauernd "application identifier entitlement is missing" Fehler die aber heute morgen mit der selben Binary nicht mehr aufgetreten sind.
Was mir etwas fehlt ist so ein automatischer Wizard der die 18 Icons?!? auf Basis eines Bildes erstellt. Bis auf die Hintergrundbilder sind die ja sowieso alle quadratisch und da bietet es sich an etwas an Arbeit abzunehmen ;) Auch reichen meiner Meinung nach für die Loader schwarze PNG's, denn mitunter sieht man diese sowieso nur 1-2 Sekunden und dafür lohnt es sich nicht wirklich bunte Bilder mit Auflösungen die teilweise die des eigenen Monitors überschreiten zu erstellen.

Delphi-Quellcode:
function FitRect(var R: TRectF; const BoundsRect: TRectF): Single;
var
  ratio: Single;
begin
  Result := 1;
  if RectWidth(BoundsRect) * RectHeight(BoundsRect) = 0 then
    Exit;
  if (RectWidth(R) / RectWidth(BoundsRect)) >
    (RectHeight(R) / RectHeight(BoundsRect)) then
    ratio := RectWidth(R) / RectWidth(BoundsRect)
  else
    ratio := RectHeight(R) / RectHeight(BoundsRect);

  R := RectF(0, 0, round(RectWidth(R) / ratio), round(RectHeight(R) / ratio));

  Result := ratio;
  RectCenter(R, BoundsRect);
end;

procedure TfrmWizard.FormCreate(Sender: TObject);
begin
  btnConvert.enabled := false;
  FDir := '';
end;

procedure TfrmWizard.btnLoadClick(Sender: TObject);
begin
  if dlgOpen.Execute then
  begin
    FDir := extractfilepath(dlgOpen.FileName);
    btnConvert.enabled := true;
    imgOriginal.Bitmap.LoadFromFile(dlgOpen.FileName);
  end;
end;

procedure TfrmWizard.btnConvertClick(Sender: TObject);

const
  cSizes: Array [0 .. 10] of integer = (29, 50, 57, 58, 72, 76, 100, 114, 120,
    144, 152);
  cLayoutSizes: Array [0 .. 6] of record x,
    y: integer end = ((x: 1024; y: 748), (x: 1536; y: 2008), (x: 2048; y: 1496),
    (x: 320; y: 480), (x: 640; y: 1136), (x: 640; y: 960), (x: 768; y: 1004));

var
  i: integer;
  bmp: TBitmap;
  src, dst: TRectF;
begin
  for i := 0 to high(cSizes) do
  begin
    bmp := TBitmap.Create(cSizes[i], cSizes[i]);
    bmp.Canvas.BeginScene(nil);
    bmp.Canvas.Clear(0);
    src := RectF(0, 0, imgOriginal.Bitmap.Width, imgOriginal.Bitmap.Height);
    dst := src;
    FitRect(dst, RectF(0, 0, bmp.Width, bmp.Height));

    bmp.Canvas.DrawBitmap(imgOriginal.Bitmap, src, dst, 1);
    bmp.Canvas.EndScene;
    bmp.SaveToFile(format('%s%dx%d.png', [FDir, cSizes[i], cSizes[i]]));
    bmp.Free;
  end;

  for i := 0 to high(cLayoutSizes) do
  begin
    bmp := TBitmap.Create(cLayoutSizes[i].x, cLayoutSizes[i].y);
    bmp.Clear($FF000000);
    bmp.SaveToFile(format('%s%dx%d.png', [FDir, cLayoutSizes[i].x,
      cLayoutSizes[i].y]));
    bmp.Free;
  end;
end;
Vielleicht findet jemand obigen Code ja praktisch.

Union 6. Okt 2013 11:41

AW: iOS7 XE5 Appstore geht nicht ?!
 
Kann man auch hier machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz